HarmonyOS 鸿蒙Next har包集成到工程项目后,har内部通过resourceManager获取string资源报错crash
HarmonyOS 鸿蒙Next har包集成到工程项目后,har内部通过resourceManager获取string资源报错crash
目前就har内部在组件页面中,因为需要国际化展示,通过getContext(this).resourceManager.getStringByNameSync('app.string.nm_forward_title')
获取本har内部的资源报错:
har包中string资源是存在的,集成后资源也看到拷贝过去了的,har混淆开或关均会报错,但在har所在的自身工程项目中运行则不会出现这个错误。
我尝试过使用getStringXxxx
的其他方法也是一样的,请问这个是咋回事呢?整了挺久还是没解决,有点懵了。到底是context的问题还是resourceManager的问题?
更多关于HarmonyOS 鸿蒙Next har包集成到工程项目后,har内部通过resourceManager获取string资源报错crash的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
遇到同样的问题,楼主有新的答案没
更多关于HarmonyOS 鸿蒙Next har包集成到工程项目后,har内部通过resourceManager获取string资源报错crash的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
楼主试试看在har中这样调用字符资源呢:getContext().resourceManager.getStringValue($r('app.string.xxx').id)
你好,用这个方法的确是能取到。这其中是有什么讲究吗?而且这个在混淆后应该就也取不到了吧,
我也是尝试出来的,您试过代码混淆后,可以取到吗?
当har包被entry引用后,
```kotlin
getContext(this)拿到的上下文是entry的,文件会从entry种读取,但是你在编写har包的时候,resourceManager是校验你当前har包的source文件的
那请问这种情况改怎么解决呢?如果是这样的话,岂不是每一个har包都会遇到这样的问题,
还是说需要另外弄个专门的hsp资源模块从中去取吗?
针对HarmonyOS鸿蒙Next har包集成到工程项目后,har内部通过resourceManager获取string资源报错crash的问题,可能的原因及解决方法如下:
-
资源文件路径或命名错误:检查har包中的资源文件是否正确放置在指定的资源目录下,且文件名及后缀是否与代码中引用的完全一致。
-
资源引用方式错误:确保在代码中通过resourceManager获取资源时,使用的资源ID或路径与资源文件中定义的相匹配。
-
资源文件损坏:验证har包中的资源文件是否完整未损坏,可以尝试重新导出har包并集成到项目中。
-
版本兼容性问题:检查当前使用的HarmonyOS SDK版本是否与har包兼容,必要时升级或降级SDK版本。
-
构建配置问题:检查项目的构建配置,确保har包被正确集成到构建路径中,且相关依赖库已正确配置。
-
权限问题:确认应用是否具有访问资源的必要权限,特别是当资源位于受保护路径时。
如果上述方法均未能解决问题,可能是由于更深层次的系统或框架bug导致。此时,建议直接联系官网客服以获取更专业的技术支持。官网地址是:https://www.itying.com/category-93-b0.html