HarmonyOS 鸿蒙Next entry模块中使用hsp导出的类导致应用无法启动
HarmonyOS 鸿蒙Next entry模块中使用hsp导出的类导致应用无法启动 目前项目中有两个hsp模块,都仅在项目根目录下的oh-package.json中声明了引用。
现在我在entry模块中调用了2个hsp的导出类,其中一个hsp的导出类可以正常执行,另外一个会直接导致应用卡死在launcher页面无法启动,报错如下:
Device info:HUAWEI Mate 40 Pro
Build info:NOH-AN00 4.1.0.33(SP35C00E33R1P17log)
Module name:com.hexin.harmonyos
Version:1.0.0
Pid:12631
Uid:20020109
Reason:Signal:SIGABRT(SI_TKILL)@0x1317b8d00003157 from:12631:20020109
Thread name:hexin.harmonyos
#00 pc 000000000017da1c /system/lib/ld-musl-aarch64.so.1(raise+124)
#01 pc 00000000001360b4 /system/lib/ld-musl-aarch64.so.1(abort+20)
#02 pc 000000000071e494 /system/lib64/platformsdk/libace_compatible.z.so(0ce0560349939c4a36b6d9e9154d8722)
#03 pc 000000000071de20 /system/lib64/platformsdk/libace_compatible.z.so(0ce0560349939c4a36b6d9e9154d8722)
#04 pc 000000000071dc2c /system/lib64/platformsdk/libace_compatible.z.so(OHOS::Ace::ResourceManager::GetOrCreateResourceAdapter(OHOS::Ace::RefPtrOHOS::Ace::ResourceObject&)+308)(0ce0560349939c4a36b6d9e9154d8722)
#05 pc 000000000168b8b4 /system/lib64/platformsdk/libace_compatible.z.so(0ce0560349939c4a36b6d9e9154d8722)
#06 pc 000000000169dfe8 /system/lib64/platformsdk/libace_compatible.z.so(0ce0560349939c4a36b6d9e9154d8722)
#07 pc 00000000014b5828 /system/lib64/platformsdk/libace_compatible.z.so(0ce0560349939c4a36b6d9e9154d8722)
#08 pc 00000000014b8d00 /system/lib64/platformsdk/libace_compatible.z.so(0ce0560349939c4a36b6d9e9154d8722)
如果我在entry中 使用这些导出类在模块中的绝对路径引用,是可以执行的,所以想找寻一下原因。
更多关于HarmonyOS 鸿蒙Next entry模块中使用hsp导出的类导致应用无法启动的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
分析代码,发现在EntryAbility类的onCreate中执行HSP包的类的静态函数,从整个HSP的引用来看,是满足要求的,但,在onCreate函数中调用HSP包中的函数时,就算函数体是空,执行时也报错,从引起中,点击进去,查看类的跳转,也是正常。分析引用的HSP包中的export,发现引用的class中包含了其他ets文件中的类,结合文档介绍:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/in-app-hsp-V13。建议将调用的代码移到Index.ets文件中执行,移至该文件执行
更多关于HarmonyOS 鸿蒙Next entry模块中使用hsp导出的类导致应用无法启动的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙)系统中,如果在Next entry模块中使用hsp(HarmonyOS Service Platform,鸿蒙服务平台)导出的类导致应用无法启动,这通常与类加载、依赖管理或权限配置有关。
-
检查类路径和依赖: 确保hsp导出的类已被正确打包到应用中,并且类路径没有错误。同时,检查是否有遗漏的依赖库,这些库可能是导出类正常运行所必需的。
-
检查权限配置: 鸿蒙系统对应用权限有严格管理,确保应用已声明使用hsp导出类所需的所有权限。检查
config.json
或其他配置文件中的权限声明。 -
检查模块间通信: 如果Next entry模块与其他模块有交互,确保模块间通信机制(如Ability间的Intent传递)正确无误,且遵循鸿蒙的通信规范。
-
查看日志和错误信息: 详细查看应用启动时的日志输出,特别是与类加载失败或权限拒绝相关的错误信息,这些信息通常能提供问题的直接线索。
-
重新编译和打包: 清除项目缓存,重新编译并打包应用,确保所有更改都已生效。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,