问题现象
win10上安装了最新的android studio
Android Studio Electric Eel | 2022.1.1
Build #AI-221.6008.13.2211.9477386, built on January 11, 2023
Runtime version: 11.0.15+0-b2043.56-8887301 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 10 10.0
创建如下的avd设备
![](https://i-blog.csdnimg.cn/blog_migrate/0e9d1429d78cdaff995cd32391001693.png)
运行后模拟器提示无法运行,切换到命令行添加verbose参数运行模拟器
D:\Users\xxx\AppData\Local\emulator\emulator.exe -netdelay none -netspeed full -avd adv_debug -verbose
终端提示如下:
PANIC: Avd's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host
网上找了很多也没有找到具体原因。
分析
查看emulator的源码发现上述打印是在提交(99c2455f4efd32f2d661dceea46fbe836a6d14c4,)中加入的
![](https://i-blog.csdnimg.cn/blog_migrate/4e63823a920b7cf430e4b4fc0f5e23ad.png)
按照提交注释是说apilevel > 28,就是新的android 9.0及以后版本上不在支持host和guest (android)不匹配的情况,说白了就是x86上只能跑x86版本的android,arm机器上只能跑arm版本的android镜像。具体为什么也没有说,但是我想说这个限制完全和qemu设计的初衷不匹配了,qemu本就是支持在一个实体cpu上模拟出不同架构的cpu,对于需要针对cpu相关的调试可能就没办法用模拟器验证调试了。
然后我用了android 8.0 版本的arm镜像确实可以运行起来,但是对于这个限制对于我们开发者来说还是很不方便。后面提一个bug咨询下,或者下载代码自己编译去掉限制看看有什么问题(有点怀疑是为了性能考虑)。
原因
待分析。