HarmonyOS 鸿蒙Next模拟器上无法运行

HarmonyOS 鸿蒙Next模拟器上无法运行

连上真机测试没有问题,模拟器上如果abi用默认的arm64则会报错9568347,如果改为x86_64,则报错hvigor ERROR: Failed :entry:default@BuildNativeWithNinja… > hvigor ERROR: Exceptions happened while executing: ninja

请问这是什么问题呢?不想每次都真机测试

6 回复

【背景知识】

不同架构的模拟器使用三方库时,三方库需要支持模拟器对应的架构。

【问题定位】

根据日志信息分析错误编码9568347可知:解析本地so失败。

【修改建议】

三方库不支持模拟器架构的情况,使用真机调试。

更多关于HarmonyOS 鸿蒙Next模拟器上无法运行的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


使用非 ARM 架构设备(如 M1/M2 芯片的 Mac)编译时,可能因缺少兼容层导致执行失败

验证编译目标设备是否与 SDK 支持的架构一致

abi默认使用 arm64-v8a 报错 code:9568347

模拟器默认运行于 x86_64 架构,楼主工程仅配置 arm64-v8a 或未包含 x86_64,会导致安装解析SO文件失败。

执行以下命令获取设备支持的ABI列表,如果返回包含 x86_64,则需在工程中配置该ABI。

hdc shell param get const.product.cpu.abilist

并在模块级 build-profile.json5 中添加 abiFilters,确保包含 x86_64:

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

配置 x86_64 后的构建失败

第三方库未提供 x86_64 架构支持;CMake配置缺失或参数错误。

如果楼主工程依赖第三方库,需确认其是否支持 x86_64。可以暂时注释第三方库,测试基础功能是否正常。

在 build-profile.json5 中添加 cppFlags 参数:

"externalNativeOptions": {
  "cppFlags": "-mfloat-abi=hard"
}

很明显你引入的so库不支持X86芯片(模拟器),需要用真机测试,目前是这个情况,如果你想测试与此无关的业务,可以暂时屏蔽相关代码进行测试

鸿蒙Next模拟器无法运行可能由以下原因导致:

  1. 模拟器镜像损坏,需重新下载;
  2. 电脑未开启VT虚拟化技术;
  3. 显卡驱动不兼容;
  4. 系统资源不足(内存/存储空间不足);
  5. 鸿蒙IDE版本与模拟器版本不匹配。

请检查日志文件确认具体错误,并确保开发环境配置符合官方要求。

根据您描述的情况,在HarmonyOS Next模拟器上遇到的运行问题主要有两个关键错误:

  1. 使用arm64 ABI时出现的9568347错误
  2. 使用x86_64 ABI时的ninja构建失败

建议检查以下几点:

  1. 确保您的开发环境配置正确:
  • 确认已安装最新版本的HarmonyOS SDK
  • 检查模拟器版本与SDK版本是否匹配
  1. 对于arm64错误:
  • 尝试清理项目并重新构建
  • 检查项目配置中是否包含不兼容的arm64依赖
  1. 对于x86_64的ninja构建失败:
  • 查看完整的构建日志,定位具体失败原因
  • 确认NDK版本是否与HarmonyOS Next兼容
  • 检查native代码是否有平台相关限制
  1. 其他建议:
  • 尝试创建一个全新的简单项目测试模拟器运行
  • 检查系统环境变量设置是否正确

这些错误通常与环境配置或项目设置有关,建议从基础环境检查开始排查。

回到顶部