You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在x86架构Android Oreo模拟器运行含ARM原生代码的应用?

解决Android Oreo x86模拟器运行armeabi-v7a应用的问题

遇到INSTALL_FAILED_NO_MATCHING_ABIS确实头疼,尤其是Oreo官方模拟器只有x86镜像,还默认不带Houdini转译层。除了编译x86原生代码,你还有这几个可行的方案:

1. 手动给x86模拟器安装Houdini转译层

这是最直接的办法,前提是你创建模拟器时勾选了Writable System选项(这样才能修改系统目录):

  • 第一步:获取对应Oreo API级别(API 26或27)的Houdini文件(libhoudini.so和相关配置),注意要匹配x86架构的版本。
  • 第二步:启动模拟器,通过adb命令将文件推送到系统目录:
    adb root
    adb remount
    adb push libhoudini.so /system/lib/
    # 如果是64位x86模拟器,需要推到对应64位目录
    adb push libhoudini.so /system/lib64/
    
  • 第三步:设置系统属性启用Houdini:
    adb shell setprop ro.dalvik.vm.native.bridge libhoudini.so
    adb shell setprop ro.enable.native.bridge.exec 1
    
  • 第四步:重启模拟器,之后再安装你的应用,应该就能正常运行了。

注意:Houdini的版本必须和模拟器的API级别严格对应,否则可能出现兼容性问题。部分模拟器可能需要额外设置ro.dalvik.vm.isa.arm=x86这类属性,可根据实际情况调整。

2. 使用预装Houdini的第三方Oreo模拟器镜像

有些第三方模拟器平台提供预配置了ARM转译层的Oreo镜像,你可以直接下载这类镜像创建模拟器,省去手动安装Houdini的麻烦。注意选择正规平台,避免安全风险。

3. 改用ARM架构的实体设备测试

如果身边有运行Android 8.0/8.1的ARM实体设备,直接在设备上测试是最稳定的方案——完全不需要担心ABI兼容问题,还能获得更贴近真实用户的测试结果。

内容的提问来源于stack exchange,提问作者Violet Giraffe

火山引擎 最新活动