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的方式
585浏览 • 1回复 待解决
HarmonyOS PUSH 获取id失败。
255浏览 • 1回复 待解决
如何在HAR获取targetname?
52浏览 • 1回复 待解决
HarmonyOS AVSession如何获取媒体id
105浏览 • 1回复 待解决
HarmonyOS resourceManager使用问题
346浏览 • 1回复 待解决
HarmonyOS 如何获取设备唯一ID
242浏览 • 0回复 待解决
鸿蒙资源id哪里获取
6236浏览 • 1回复 待解决
如何在har获取hap的配置信息?
204浏览 • 1回复 待解决
HarmonyOS har无法封装头文件
290浏览 • 1回复 待解决
如何通过组件id获取组件?
225浏览 • 1回复 待解决
如何获取线程ID和名字
370浏览 • 1回复 待解决
HarmonyOS 替换string的所有双引号
165浏览 • 1回复 待解决
怎么获取当前用户的用户ID
616浏览 • 1回复 待解决
是否支持获取唯一设备ID
191浏览 • 1回复 待解决
设备信息的udid无法获取
1784浏览 • 1回复 待解决