HarmonyOS鸿蒙Next中release可以打包,但是进去闪退,提示报错is not callable三方依赖包出错
HarmonyOS鸿蒙Next中release可以打包,但是进去闪退,提示报错is not callable三方依赖包出错
TypeError
Error name: TypeError
Error message: is not callable
Stacktrace:
Cannot get SourceMap info, dump raw stack:
- at anonymous (entry|@ohos/lottie|2.0.19|src/main/js/utils/DataManager.js:553:1)
关闭混淆功能,再出release包。确认问题是否由混淆引起。
关闭混淆的两种方式:
1、将ruleOptions.enable改成false
"arkOptions": {
"obfuscation": {
"ruleOptions": {
"enable": false,
"files": ["./obfuscation-rules.txt"],
}
}
}
2、在obfuscation-rules.txt文件配置-disable-obfuscation选项关闭混淆。
确认是混淆导致的话,有以下解决方案:
方案一、直接关闭混淆。
方案二、
- 打开应用运行日志:选择HiLog,检索与功能异常直接相关的日志,定位问题发生的上下文。
- 定位异常代码段:通过分析日志,找到导致功能异常的具体代码块。
- 增强日志输出:在疑似异常的功能代码中,对处理的数据字段增加日志记录。
- 分析并确定关键字段:通过对新增日志输出的分析,识别是否由于混淆导致该字段的数据异常。
- 配置白名单保护关键字段:将确认在混淆后对应用功能产生直接影响的关键字段添加到白名单中。
具体请参考:ArkGuard源码混淆工具-如何排查功能异常-ArkTS编译工具链-ArkTS(方舟编程语言)-应用框架 - 华为HarmonyOS开发者
总结
在 DevEco Studio5.0.3.600及之后,新建工程的默认设置已更改为关闭代码混淆功能。混淆旨在降低工程被破解攻击的风险,缩短代码的类与成员的名称,减小应用的大小。所以还是开启该功能比较好,只要花点时间排查下受影响功能,将对应用功能产生直接影响的关键字段添加到白名单中即可解决问题。
更多关于HarmonyOS鸿蒙Next中release可以打包,但是进去闪退,提示报错is not callable三方依赖包出错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
关闭代码混淆后再试试
在HarmonyOS鸿蒙Next中,release打包后闪退且提示"is not callable"错误,通常是由于三方依赖包未正确处理或兼容性问题导致的。建议您检查以下步骤:
- 依赖包版本:确保所有三方依赖包与HarmonyOS版本兼容。
- 编译配置:检查
build.gradle
或pom.xml
文件,确保依赖包正确引入。 - 混淆配置:如果启用了混淆,确保三方依赖包的类和方法未被错误混淆。
- 日志分析:查看详细日志,定位具体出错的三方包及方法。
通过逐步排查,可以解决此问题。