解决Android 无法在AMD上正常启动Emulator(虚拟机)的解决办法

1,414 阅读2分钟

背景

一句话说就是安装一个微软的更新包,这个bug修复了就可以正常使用了。

请先阅读背景,避免再走弯路。

  1. CPU 是 AMD 3700X,如果是其他 AMD 的 CPU 应该也可以参考此文解决。
  2. 按照微软官方设置后,依然无法在AMD主机上顺利启动Emulator 详细的设置参考此链接 blog.csdn.net/wmd17321418…
  3. 系统版本也检查过,自己的系统版本号是1903,这个功能是从1803就支持了的。
  4. 卸载其他所有第三方模Android模拟器,包括虚拟机。

启动Emulator后,错误信息如下:

10:30 AM Emulator: qemu-system-x86_64.exe: WHPX: Failed to emulate MMIO access with EmulatorReturnStatus: 2 (InternalEmulationFailure )

10:30 AM Emulator: qemu-system-x86_64.exe: whpx_vcpu { emulator=000000000ec95f70, window_registered=false, interruptable=true, tpr=0, apic_base=fee00900, interruption_pending=false }

10:30 AM Emulator: qemu-system-x86_64.exe: WHV_MEMORY_ACCESS_CONTEXT { Instruction={ size=16, bytes='A1 F0 00 E0 FE 80 CC 01 A3 F0 00 E0 FE C7 05 50 ' }, AccessInfo={ AccessType=0, GpaUnmapped=1, GvaValid=0, AsUINT32=4 }, Gpa=fee000f0, Gva=0 }

10:30 AM Emulator: qemu-system-x86_64.exe: WHPX: Failed to exec a virtual processor

10:30 AM Emulator: Warning: QObject::~QObject: Timers cannot be stopped from another thread ((null):0, (null))

10:30 AM Emulator: Process finished with

解决办法

这里面有个答案说下载window更新包,然后用命令行升级

  1. 点击下载:64位更新包(接近260M的大小)
  2. 命令:DISM /Online /Add-Package /PackagePath:"your-path" (your-path 替换为你的更新包完整路径)
  3. 需要提升权限才能运行 DISM,这个很好解决,百度一波就知道了,这里就不做赘述。

然后就是大概10-20分钟的安装过程,重启电脑就能正常启动Emulator了。

虽然自己还有台Mac Book Pro,也可以来做开发,跑虚拟机完全没问题(因为是Intel的CPU),但是作为一名技术人员,遇到问题如果没有解决,总觉得心里有个石头放不下,这个问题之前我花了一下午没有排查到原因,今天又想起来这个问题,花了1小时终于从解决了这个问题,

舒服了!

参考文章如下:

stackoverflow.com/questions/5…

developercommunity.visualstudio.com/content/pro…