HarmonyOS 鸿蒙Next:我开启了代码混淆功能,并且在编译时以Release模式构建HAR包,但构建后在demo中无法引入HAR包。是否开启混淆后,要调的类保留失效了?
HarmonyOS 鸿蒙Next:我开启了代码混淆功能,并且在编译时以Release模式构建HAR包,但构建后在demo中无法引入HAR包。是否开启混淆后,要调的类保留失效了?
请问下我这个collect模块是开发第三方SDK,build-profile.json5文件中,将ruleOptions.enable字段的值设置为true,我开启了代码混淆功能,并且在编译的时候,以Release模式构建HAR包的。
以下是我在obfuscation-rules.txt文件中保留了以下类
-keep
./src/main/ets/common/ApmAgent.ets
./src/main/ets/utils/CrashUtil.ets
但我构建HAR包后在自己写的demo中无法引入这个har包。。。是不是我开启混淆后,那两个要调的类保留失效了?
更多关于HarmonyOS 鸿蒙Next:我开启了代码混淆功能,并且在编译时以Release模式构建HAR包,但构建后在demo中无法引入HAR包。是否开启混淆后,要调的类保留失效了?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
楼主,保留的类是否在collect/index.ets中导出过?如果还是不行可以提供建议demo分析下
更多关于HarmonyOS 鸿蒙Next:我开启了代码混淆功能,并且在编译时以Release模式构建HAR包,但构建后在demo中无法引入HAR包。是否开启混淆后,要调的类保留失效了?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
- 保留的两个类在
collect/index.ets
中导出过的,
对照官方文档自查下呢,collect中的build-profile.json5和har包中index.d.ets截图看看,
在HarmonyOS鸿蒙Next系统中,开启代码混淆功能并在Release模式下构建HAR包时,确实可能会导致某些类因为混淆而未被正确保留,从而在demo中无法引入HAR包。代码混淆是通过改变类、方法和字段的名称来减少代码的可读性,从而增加逆向工程的难度。然而,这种改变也可能导致运行时或编译时的错误,特别是当其他模块依赖于这些被混淆的名称时。
在HarmonyOS中,若要使用混淆后的HAR包,你需要确保在混淆配置文件中正确保留了所有需要暴露给外部的类、方法和字段。这通常通过添加特定的规则到混淆配置文件(如proguard-rules.pro)来实现。
检查以下几点可能有助于解决问题:
- 确认混淆配置文件是否正确设置了keep规则,以保留所有需要的公共API。
- 检查HAR包的构建日志,看是否有关于混淆的警告或错误。
- 在demo项目中,尝试清理并重新构建项目,以确保所有依赖都是最新的。
如果以上步骤未能解决问题,可能是混淆配置存在其他未注意到的错误。此时,可以仔细检查混淆配置文件,或者考虑暂时关闭混淆功能以进行调试。如果问题依旧没法解决请联系官网客服,官网地址是 。