安装HAP时提示“code:9568347 error: install parse native so failed”错误,或者运行时候提示“TypeError:Cannot read property xxx of undefined”(HarmonyOS 鸿蒙Next)

安装HAP时提示“code:9568347 error: install parse native so failed”错误,或者运行时候提示“TypeError:Cannot read property xxx of undefined”(HarmonyOS 鸿蒙Next) 问题现象
在启动调试或运行C++应用/服务时,安装HAP出现错误,提示“error: install parse native so failed”错误信息,或者运行时候提示“TypeError:Cannot read property xxx of undefined”错误。

解决措施
该问题是可能是由于设备支持的Abi类型与C++工程中配置的Abi类型不匹配导致,请通过如下步骤进行解决。

典型场景:
从4.1.3.400版本开始,abiFilters字段缺省配置为"arm64-v8a",将默认只编译arm64-v8a一种Abi,若设备不支持64位Abi,构建出的包将无法运行在设备上,请根据设备支持的Abi,在build-profile.json5中的buildOption/externalNativeOptions内手动配置abiFilters的值。

// HarmonyOS工程 “buildOption”: { “externalNativeOptions”: { “abiFilters”: [“arm64-v8a”, “x86_64”] }, } // OpenHarmony工程 “buildOption”: { “externalNativeOptions”: { “abiFilters”: [“arm64-v8a”, “x86_64”, “armeabi-v7a”] }, }


说明  
- 如果工程有依赖HSP或者HAR模块,请确保所有包含C++代码的模块配置的Abi类型包含设备支持的Abi类型。
- 如果工程依赖的三方库包含so文件,请确保oh_modules/三方库/libs目录包含有设备支持的Abi目录,如libs/arm64-v8a、/libs/x86_64。
- 对于HarmonyOS应用,在DevEco Studio NEXT Developer Beta1(5.0.3.200)及以上版本不支持编译armeabi-v7a架构的so文件。

通用场景:  

1. 将设备与DevEco Studio进行连接。
2. 打开命令行终端,并进入hdc目录:DevEco Studio安装目录/sdk/default/openharmony/toolchains。
3. 执行如下命令,查询设备支持的Abi列表,返回结果为default/armeabi/arm64-v8a/x86/x86_64中的一个或多个Abi类型。
   
   ```bash
   hdc shell
   param get const.product.cpu.abilist
  1. 根据查询返回结果,检查模块级build-profile.json5文件中的“abiFilters”参数中的配置,规则如下:

    • 若返回结果为default,请执行如下命令,查询是否存在lib64文件夹。

      cd /system/
      ls
      
      • 存在lib64文件夹:则“abiFilters”参数中需要包含arm64-v8a类型。
      • 不存在lib64文件夹:则“abiFilters”参数中需要包含armeabi类型。
    • 若返回结果为armeabi/arm64-v8a/x86/x86_64中的一个或多个,需要在“abiFilters”参数中至少包含返回结果中的一个Abi类型。


更多关于安装HAP时提示“code:9568347 error: install parse native so failed”错误,或者运行时候提示“TypeError:Cannot read property xxx of undefined”(HarmonyOS 鸿蒙Next)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于安装HAP时提示“code:9568347 error: install parse native so failed”错误,或者运行时候提示“TypeError:Cannot read property xxx of undefined”(HarmonyOS 鸿蒙Next)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


安装HAP时提示"code:9568347 error: install parse native so failed"错误,通常是由于HAP包中的libs目录下的.so文件格式或架构与目标设备不匹配导致的。.so文件是动态链接库文件,需要在编译时确保其与目标设备的CPU架构一致,如arm64-v8aarmeabi-v7a等。如果.so文件缺失或损坏,也会导致此错误。

运行时候提示"TypeError:Cannot read property xxx of undefined"错误,通常是由于JavaScript代码中访问了未定义或未初始化的对象属性。在HarmonyOS开发中,可能是由于ArkTS或JS代码中的对象未正确初始化,或者在异步操作中未正确处理数据加载。检查相关代码,确保对象在使用前已正确初始化。

对于上述问题,可以通过以下步骤进行排查和解决:

  1. 检查HAP包中的.so文件是否与目标设备架构匹配,确保文件完整且未被损坏。
  2. 确保JavaScript代码中访问的对象已正确初始化,避免访问未定义或未初始化的属性。
  3. 使用开发者工具进行调试,查看具体错误信息,定位问题所在。

如果问题仍然存在,建议检查相关文档或示例代码,确保遵循正确的开发规范。

回到顶部