HarmonyOS鸿蒙Next中友盟SDK虚拟机启动报错:安装HAP时提示“code:9568347 error: install parse native so failed”错误

HarmonyOS鸿蒙Next中友盟SDK虚拟机启动报错:安装HAP时提示“code:9568347 error: install parse native so failed”错误 友盟SDK,虚拟机启动报错:安装HAP时提示“code:9568347 error: install parse native so failed”错误,在/entry/build-profile.json5上添加 “buildOption”: { “externalNativeOptions”: { “abiFilters”: [“arm64-v8a”, “x86_64”] } },不能够解决问题

  1. 友盟SDK,安装友盟SDK(https://developer.umeng.com/docs/119267/detail/2712046
  2. 启动虚拟机(真机无这个问题,但耽误整体团队开发调试)

更多关于HarmonyOS鸿蒙Next中友盟SDK虚拟机启动报错:安装HAP时提示“code:9568347 error: install parse native so failed”错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

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

1、将设备与DevEco Studio进行连接。

2、打开命令行工具,并进入SDK安装目录下的toolchains{版本号}目录下。

若不清楚OpenHarmony SDK安装目录,可单击File > Settings > SDK界面查看安装路径。

3、执行如下命令,查询设备支持的Abi列表,返回结果为default/armeabi-v7a/armeabi/arm64-v8a/x86/x86_64中的一个或多个Abi类型。

hdc shell
param get const.product.cpu.abilist

4、根据查询返回结果,检查模块级build-profile.json5文件中的“abiFilters”参数中的配置,规则如下:

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

cd /system/
ls

存在lib64文件夹:则“abiFilters”参数中需要包含arm64-v8a类型。

不存在lib64文件夹:则“abiFilters”参数中需要至少包含armeabi/armeabi-v7a中的一个类型。

若返回结果为armeabi-v7a/armeabi/arm64-v8a/x86/x86_64中的一个或多个,需要在“abiFilters”参数中至少包含返回结果中的一个Abi类型。

若配置"abiFilters": [“arm64-v8a”, “armeabi-v7a”, “x86_64”]的情形下,在启动调试或运行C应用/服务时,安装HAP出现错误,还是提示“error: install parse native so failed”错误信息。需要看下所依赖的C模块libs目录使用有对应的文件夹,没有的话需要编译c++模块生成对应的库,然后再在build-profile.json5文件下进行配置。

参考配置:

1、entry模块下配置:

"buildOption": {
    "externalNativeOptions": {
        "abiFilters": ["arm64-v8a", "armeabi-v7a", "x86_64"]
    }
}

2、C++模块配置:

"buildOption": {
    "externalNativeOptions": {
        "path": "../src/main/cpp/CMakeLists.txt",
        "arguments": "",
        "cppFlags": "",
        "abiFilters": ["arm64-v8a"]
    }
}

在oh-package.json5中将@umeng/analytics 和 "@umeng/common 的依赖关系挪到devDependencies

"devDependencies": {
    "@ohos/hypium": "1.0.18",
    "@ohos/hamock": "1.0.0",
    "[@umeng](/user/umeng)/analytics": "1.0.19",
    "[@umeng](/user/umeng)/common": "1.0.24"
},

@umeng/common”: "1.0.24"这个依赖包内有一个libcommon.so未进行x86化,请使用相关依赖的自行编译x86版本。

编译流程参考:https://gitee.com/openharmony-sig/tpc_c_cplusplus

更多关于HarmonyOS鸿蒙Next中友盟SDK虚拟机启动报错:安装HAP时提示“code:9568347 error: install parse native so failed”错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,友盟SDK虚拟机启动时出现“code:9568347 error: install parse native so failed”错误,通常是由于以下原因之一:

  1. SO文件未正确打包或缺失:在HAP包中,SO文件可能未正确打包或缺失,导致安装时无法解析。

  2. SO文件架构不匹配:HAP包中的SO文件可能不支持当前虚拟机的CPU架构(如armeabi-v7a、arm64-v8a等),导致安装失败。

  3. SO文件路径错误:SO文件的路径配置可能有误,导致系统无法正确加载这些文件。

  4. SO文件签名问题:HAP包中的SO文件可能未正确签名,导致安装时验证失败。

  5. 系统权限问题:虚拟机可能缺乏必要的权限来加载或解析SO文件。

解决方法包括:

  • 检查HAP包中的SO文件是否完整且正确打包。
  • 确保SO文件支持目标虚拟机的CPU架构。
  • 验证SO文件的路径配置是否正确。
  • 确保HAP包及其SO文件已正确签名。
  • 检查虚拟机的权限设置。

通过以上步骤,可以解决“code:9568347 error: install parse native so failed”错误。

在HarmonyOS鸿蒙Next中,使用友盟SDK时若虚拟机启动报错“code:9568347 error: install parse native so failed”,通常是由于以下原因导致:

  1. Native库不兼容:SDK中的Native库(.so文件)与当前鸿蒙系统的ABI(应用二进制接口)不匹配。请确保使用的SDK版本与鸿蒙系统版本兼容。

  2. HAP包配置问题:检查config.json文件中的abiFilters配置,确保包含虚拟机支持的ABI类型(如armeabi-v7aarm64-v8a)。

  3. 虚拟机环境问题:鸿蒙虚拟机可能与某些第三方SDK存在兼容性问题。建议使用真机测试或更新虚拟机版本。

解决方法:

  • 确认SDK支持鸿蒙系统。
  • 检查并更新config.json中的ABI配置。
  • 使用真机调试或更新虚拟机至最新版本。
回到顶部