HarmonyOS鸿蒙Next中har静态库报错Error message:Invalid resource ID Error code:9001001,真机有问题模拟器没有问题,源码引入的方式没有问题,以har的方式引入有问题

HarmonyOS鸿蒙Next中har静态库报错Error message:Invalid resource ID Error code:9001001,真机有问题模拟器没有问题,源码引入的方式没有问题,以har的方式引入有问题 鸿蒙 module 生成对应的 har 静态库的时候,静态库内部获取资源失败了 。

真机失败、模拟器不失败

har 包的方式引入失败 、 源码的方式引入不失败

资源

cke_4429.png

资源的使用

cke_3591.png


更多关于HarmonyOS鸿蒙Next中har静态库报错Error message:Invalid resource ID Error code:9001001,真机有问题模拟器没有问题,源码引入的方式没有问题,以har的方式引入有问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

伙伴您好,

【背景知识】

HAR可以作为二方库和三方库提供给其他应用使用,如果需要对代码资产进行保护时,建议开启混淆能力

【问题定位】

  1. 检查传入参数的资源id是否已有。
  2. 排查是否为以下场景:
    • HAR开启混淆
    • 中间码HAR
    • 字节码HAR
    • 跨HAP/HSP包

这四种场景推荐使用getXXXXByName()等方法通过名称获取资源。

【分析结论】

HAR包开启了混淆,HAR包代码中ResourceManager.getStringValue()等通过ID获取资源的API不再生效。

【修改建议】

ResourceManager.getStringValue()替换成ResourceManager.getStringByName()方法。

更多关于HarmonyOS鸿蒙Next中har静态库报错Error message:Invalid resource ID Error code:9001001,真机有问题模拟器没有问题,源码引入的方式没有问题,以har的方式引入有问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,出现Error message: Invalid resource ID Error code:9001001错误,通常与资源ID的引用方式有关。真机与模拟器环境可能存在差异,导致资源ID解析失败。建议检查以下几点:

  1. 资源文件:确保resources目录下的资源文件命名和路径正确,避免重复或冲突。
  2. 资源ID生成:确认resource_table.h文件中的资源ID是否与代码中引用的ID一致。
  3. HAR包构建:检查HAR包的构建过程,确保资源文件被正确打包。
  4. 真机调试:在真机上使用hdc工具查看日志,定位具体资源加载失败的原因。

如果问题仍未解决,可以尝试清理项目并重新构建,或检查HarmonyOS SDK版本是否兼容。

回到顶部