HarmonyOS har 中 resourceManager 无法获取 string id

在依赖已经打包好的 har 包时,出现 Resource id invalid 9001001 的错误。在 har 中通过 resourceManager.getStringSync($r(‘app.string.test_text’)) 方法获取 string.json 中的字符串,源码依赖该 har 时没有问题。打包成 har 放到远程仓库依赖时,一旦进入 har 中的组件,会出现 Resource id invalid 9001001 的报错 crash。查看 oh_modules 中关于该 har 的源码时,发现所有的 id 都变成了 -1,请教需要怎么解决该问题。原代码:

 updateInfoByRes(strResId: number): string {      
return getContext().resourceManager.getStringSync(strResId);    
} 

har 中编译后的代码:

this.updateInfo({ "id": -1, "type": 10003, params: ["app.string.test_text"], "bundleName": "", "moduleName": "" }.id); 

该方法在 aboutToAppear() 中调用。

HarmonyOS
2024-08-14 15:42:09
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

getcontext默认是entry的context,如果是entry直接依赖har,应该能找到资源,但是如果是hsp依赖har,得指定context模块,不然默认去entry上找,是找不到的。请在getContext后面添加createModuleContext指定模块。

分享
微博
QQ
微信
回复
2024-08-14 21:10:16
相关问题
HarmonyOS 开发获取设备唯一id的方式
115浏览 • 1回复 待解决
HarmonyOS PUSH 获取id失败。
102浏览 • 1回复 待解决
HarmonyOS resourceManager使用问题
139浏览 • 1回复 待解决
HarmonyOS har无法封装头文件
30浏览 • 1回复 待解决
鸿蒙资源id哪里获取
6005浏览 • 1回复 待解决
如何获取线程ID和名字
95浏览 • 1回复 待解决
HarmonyOS Har静态包内部页面无法跳转
127浏览 • 1回复 待解决
设备信息的udid无法获取
1546浏览 • 1回复 待解决
怎么获取当前用户的用户ID
447浏览 • 1回复 待解决
HAR包里子窗口无法加载页面
414浏览 • 1回复 待解决
关于如何获取时钟的id的问题
5549浏览 • 1回复 待解决