Q:在启动调试或运行C++应用/服务时,安装HAP出现错误,提示“error: install parse native so failed”错误信息,或者运行时提示“TypeError:Cannot read property xxx of undefined”错误。
A:该问题可能是由于设备支持的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"]
},
}
通用场景:
hdc shell param get const.product.cpu.abilist