M1芯片MacBook Pro使用x86_64系统镜像的Android模拟器无法运行求助
问题成因
- Apple Silicon(M1)系列芯片原生为arm64架构,没有内置x86指令集解码器,运行x86_64架构的Android镜像必须依赖转译层,未正确配置转译环境就会直接启动失败
- 低于31.3.10版本的Android Emulator未适配Apple Silicon平台的x86_64镜像转译运行能力,旧版本启动x86_64镜像必然报错
- API 30以下的x86_64系统镜像本身没有适配Rosetta转译运行环境,兼容性极差
- AVD配置的硬件加速、内存分配等参数和转译环境冲突,也会触发进程终止报错
- 之前运行模拟器产生的锁文件、缓存残留也可能导致进程无法正常启动
解决方案
- 首先安装Rosetta 2转译层,打开终端执行命令:
softwareupdate --install-rosetta --agree-to-license
运行完成后重启一次设备再尝试启动模拟器 - 升级Android Studio到最新稳定版,同时在SDK Manager的SDK Tools标签页,将Android Emulator升级到31.3.10以上版本
- 更换更高版本的x86_64系统镜像,优先选择API 31及以上的Google APIs x86_64镜像,不要使用API 29及更低版本的x86_64镜像
- 调整AVD配置:编辑对应AVD,进入高级设置页,将模拟性能的图形渲染选项改为软件加速(GLES 2.0),内存分配设置为2048MB-4096MB区间,不要分配超过设备总内存1/4的大小,关闭"启用设备框架"等非必要选项后保存再尝试启动
- 清除残留缓存和锁文件:打开终端执行以下命令,替换为你自己的AVD名称:
rm -rf ~/.android/avd/你的AVD名称.avd/*.lockrm -rf ~/.android/emulator-cache/* - 替代方案:目前React Native 0.70及以上版本已经完成了对arm64 Android模拟器的全适配,不存在明显性能问题,可升级RN版本直接使用原生arm64架构模拟器,无需强行使用x86_64镜像
内容的提问来源于stack exchange,提问作者Patrick89
相关产品推荐
相关产品推荐

