admin管理员组

文章数量:1548470

问题现象

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设备

运行后模拟器提示无法运行,切换到命令行添加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,)中加入的

按照提交注释是说apilevel > 28,就是新的android 9.0及以后版本上不在支持host和guest (android)不匹配的情况,说白了就是x86上只能跑x86版本的android,arm机器上只能跑arm版本的android镜像。具体为什么也没有说,但是我想说这个限制完全和qemu设计的初衷不匹配了,qemu本就是支持在一个实体cpu上模拟出不同架构的cpu,对于需要针对cpu相关的调试可能就没办法用模拟器验证调试了。

然后我用了android 8.0 版本的arm镜像确实可以运行起来,但是对于这个限制对于我们开发者来说还是很不方便。后面提一个bug咨询下,或者下载代码自己编译去掉限制看看有什么问题(有点怀疑是为了性能考虑)。

原因

待分析。

本文标签: 镜像模拟器androidArm