HarmonyOS 鸿蒙Next 系统路由表文件router_map.json中配置的buildFunction在release模式下被混淆,导致路由跳转失败

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

HarmonyOS 鸿蒙Next 系统路由表文件router_map.json中配置的buildFunction在release模式下被混淆,导致路由跳转失败

如题,系统路由表文件router_map.json中配置的buildFunction在release模式下被混淆,导致路由跳转失败

2 回复
将obfuscation-rules.txt文件中的文件名混淆(-enable-filename-obfuscation)删除即可在release模式下正常跳转。 -enable-filename-obfuscation为文件名混淆,配置白名单的主要场景为动态import或运行时直接加载的文件路径,需要使用-keep-file-name来保留这些文件路径及名称。

具体参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5#%E5%A6%82%E4%BD%95%E6%8E%92%E6%9F%A5%E5%8A%9F%E8%83%BD%E5%BC%82%E5%B8%B8

在HarmonyOS鸿蒙Next系统中,router_map.json文件用于配置路由表,其中buildFunction是路由跳转功能的关键部分。在release模式下,由于代码混淆(ProGuard或类似工具)的启用,可能会导致一些函数名、类名等标识符被重命名,从而引发路由跳转失败的问题。

这种情况通常是因为混淆配置未正确排除路由相关的类或方法。为了解决这个问题,你可以在项目的混淆配置文件中(通常是proguard-rules.pro),添加规则来保持router_map.json中引用的所有buildFunction相关的类和方法不被混淆。

例如,如果buildFunction指向了一个具体的类和方法,你可以添加如下规则:

-keep class com.yourpackage.YourRouterClass {
    public static *** yourMethodName(...);
}

请确保将com.yourpackage.YourRouterClass替换为实际的类名,yourMethodName替换为实际的方法名。同时,检查是否有其他相关类或方法也需要被保持不被混淆。

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

回到顶部