HarmonyOS resourceManager使用问题

问题1:有一个lib_web模块为har,如下代码,传入模块名‘lib_web’拿到resourceManager,为了获取lib_web模块下名为web_ua的string,但是运行crash,报错异常提示的moduleName却变成了entry

代码:

let resourceManager = getContext().createModuleContext('lib_web').resourceManager; 
let ua = resourceManager.getStringSync($r('app.string.web_ua').id, harmonyUa, versionName, env, versionName);
  • 1.
  • 2.

异常:

Error message:Resource id invalid

Error code:9001001

SourceCode:

let ua = resourceManager.getStringSync({ “id”: 16777288, “type”: 10003, params: [], “bundleName”: “com.pingan.eclaim.test”, “moduleName”: “entry” }.id, harmonyUa, versionName, env, versionName);

问题2:entry依赖了har包tools,但是entry里的代码中无法通过$r(‘app.string.text’)方式引用har包tools里名为text的string。

HarmonyOS
2024-08-23 11:16:26
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zxjiu

1、编译缓存问题,把缓存的全删了,重新编译

2、如你所述,因为hsp是独立的包,getContext()的时候上下文的context会存在不一致。har是最终会打入到hsp或者hap包里面,成为hsp或者hap包源码的一部分。也就没有下文的context的概念,如果是打入hsp,那么就是hsp的上下文,如果har打入的是hap包,getContext()就是hap包的上下文

分享
微博
QQ
微信
回复
2024-08-23 15:05:28
相关问题
HarmonyOS 如何获取hsp下的resourceManager
917浏览 • 1回复 待解决
HarmonyOS地图使用问题
959浏览 • 1回复 待解决
HarmonyOS SideBarContainer使用问题
639浏览 • 1回复 待解决
HarmonyOS CustomDialogController使用问题
506浏览 • 1回复 待解决
HarmonyOS TurboModules使用问题
1094浏览 • 1回复 待解决
HarmonyOS lottie使用问题
1003浏览 • 1回复 待解决
HarmonyOS RSA使用问题
454浏览 • 1回复 待解决
HarmonyOS websocket使用问题
1014浏览 • 1回复 待解决
HarmonyOS @Link使用问题
642浏览 • 1回复 待解决