HarmonyOS 鸿蒙Next开启代码混淆之后,三方库没法使用了

发布于 1周前 作者 eggper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next开启代码混淆之后,三方库没法使用了 我开启代码混淆之后,感觉对三方库产生了影响,以至于三方库无法使用。有人遇到过这种情况吗?

4 回复

应该是开启混淆后,混淆了三方库的文件名称所以用不了对应的文件方法。

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5#代码混淆简介

看下上面的链接,要是开启混淆,会默认开启四个“推荐选项”,要自己调整下。

用“-keep-property-name”来设置不需要被混淆的文件名称,参照这里:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5#保留选项

官网文档的例子:

-keep
./src/main/ets/fileName.ts   // fileName.ts中的名称不混淆
../folder                    // folder目录下文件及子文件夹中的名称都不混淆
../oh_modules/json5          // 引用的三方库json5里所有文件中的名称都不混淆

可以自己根据上面的链接试下。

更多关于HarmonyOS 鸿蒙Next开启代码混淆之后,三方库没法使用了的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


行,我先去官网看看,再操作下,

实测  
ohpm install dayjs  
ohpm install @hview/dayjs  
ohpm install @hview/moment  

这几个我轮流测试过 开混淆打包.app上架测试  
dayjs方法不可用 moment直接崩  

有用这些库的兄弟注意下要调整混淆的设置

在HarmonyOS(鸿蒙)系统中,当开启代码混淆(ProGuard或R8等工具)后,如果三方库无法使用,通常是因为混淆过程中某些关键类、方法或字段被错误地重命名或移除。这会导致运行时找不到这些必要的组件,从而引发错误。

要解决这个问题,你需要确保混淆配置文件(如proguard-rules.pro)中包含了正确的规则来保留三方库所需的类、方法和字段。这通常涉及到:

  1. 查看三方库的文档:许多流行的库会提供官方的ProGuard规则文件或建议,你需要将这些规则添加到你的项目中。

  2. 手动添加规则:如果官方没有提供,你可能需要手动分析错误日志,找出哪些类或方法被混淆导致问题,然后在混淆配置文件中添加相应的-keep规则来保留它们。

  3. 测试:在添加或修改混淆规则后,务必重新进行充分的测试,以确保所有功能都按预期工作。

如果问题依旧没法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部