本文介绍配置和运行 Android 模拟器时发生的最常见警告消息和问题。 此外,它还介绍了解决这些错误和各种故障排除提示的解决方案,以帮助诊断仿真器问题。 有关详细信息,请参阅排查 Android Emulator 已知问题,网址为 developer.android.com。
Windows 上的部署问题
部署应用时,模拟器可能会显示一些错误消息。 此处介绍了最常见的错误和解决方案。
部署错误
如果看到有关在模拟器上安装 APK 失败或运行 Android 调试桥(adb)失败的错误,请验证 Android SDK 是否可以连接到模拟器。 若要验证模拟器连接,请使用以下步骤:
从 Android 设备管理器 启动模拟器(选择虚拟设备并选择 “开始”)。
打开命令提示符,转到安装 adb 的文件夹。 如果 Android SDK 安装在其默认位置, 则 adb 位于 C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe;如果不是,请修改计算机上 Android SDK 位置的此路径。
键入以下命令:
adb devices如果可从 Android SDK 访问模拟器,仿真器应显示在附加设备列表中。 例如:
List of devices attached emulator-5554 device如果模拟器未在此列表中显示,请启动 Android SDK 管理器,应用所有更新,然后再次尝试启动模拟器。
MMIO 访问错误
如果显示 “MMIO 访问错误 ”消息,请重启模拟器。
缺少 Google Play Services
如果模拟的 Android 设备未安装 Google Play Services 或 Google Play Store,则可能创建了排除这些包的虚拟设备。 创建虚拟设备时,请务必选择以下选项之一或两个选项:
- Google API - 在虚拟设备中包含 Google Play Services。
- Google Play 商店 - 在虚拟设备中包含 Google Play 商店。
例如,此虚拟设备将包括 Google Play Services 和 Google Play Store:
注释
Google Play Store 图像仅适用于某些基本设备类型,例如 Pixel、Pixel 2、Nexus 5 和 Nexus 5X。
性能问题
性能问题通常由以下问题之一引起:
- 仿真器在没有硬件加速的情况下运行。
- 使用基于 Arm 的映像在模拟器中运行的虚拟设备。
- 你尝试在 Windows ARM 设备上运行模拟器(不支持)。
以下部分更详细地介绍了这些方案。
未启用硬件加速
启动虚拟设备且未启用硬件加速时,设备管理器会显示类似于下图的错误对话框:
若要修复此错误,请按照 硬件加速问题 部分中的故障排除步骤进行作。
Windows ARM 设备兼容性
Android 模拟器 在 Windows ARM 设备上不受支持 ,并且不会在具有 ARM64 处理器的设备上运行,例如:
- Surface Pro X
- Surface Pro 9 (5G/ARM 变体)
- 具有 Snapdragon 或基于 ARM 的处理器的其他 Windows 设备
如果使用 Windows ARM 设备并遇到仿真器启动问题或性能问题,则可能是因为体系结构不兼容。 Android 模拟器需要 x64 处理器体系结构。
Windows ARM 设备的替代项:
- 使用通过 USB 连接的物理 Android 设备进行调试。 有关设置说明,请参阅 设置 Android 设备进行调试。
- 使用具有 x64 体系结构的基于云的开发环境或远程计算机。
- 如果区域中可用,请考虑适用于 Android 的 Windows 子系统(WSA),尽管它具有不同的功能和限制。
硬件加速问题
使用硬件加速时,可能会遇到配置问题或与计算机上的其他软件冲突。 故障排除的第一步是验证是否已启用硬件加速。 可以使用 Android 的 SDK 检查此设置。 打开命令提示符并输入以下命令:
"C:\Program Files (x86)\Android\android-sdk\emulator\emulator-check.exe" accel
此命令假定 Android SDK 安装在 C:\Program Files (x86)\Android\android-sdk 的默认位置。 如果在其他位置安装了 Android SDK,请将上述命令修改为正确的位置。
小窍门
确保 Android 仿真器是最新的。 在 Visual Studio 中,按 工具>Android>Android SDK 管理器。 选择 “工具 ”选项卡,查看 Android 模拟器 条目是否有可用的更新。
BIOS 设置不正确
如果 BIOS 未正确配置为支持硬件加速,则运行 emulator-check.exe accel 命令时将显示类似于以下示例的消息:
VT feature disabled in BIOS/UEFI
若要更正此问题,请重新启动计算机 BIOS 并启用以下选项:
- 虚拟化技术(可能有不同的标签,具体取决于主板制造商)。
- 硬件强制实施的数据执行防护。
如果仍因与 Hyper-V 相关的问题而出现问题,请参阅以下部分。
Hyper-V 问题
在某些情况下,在“打开或关闭 Windows 功能”对话框中启用 Hyper-V 和 Windows 虚拟机监控程序平台可能无法正确启用 Hyper-V。 若要验证是否已启用 Hyper-V,请使用以下步骤:
在 Windows 搜索框中输入 PowerShell 。
右键单击搜索结果中的 Windows PowerShell ,然后选择“ 以管理员身份运行”。
在 PowerShell 控制台中,输入以下命令:
Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online如果未启用 Hyper-V,将显示类似于以下示例的消息,以指示禁用 Hyper-V 的状态:
FeatureName : Microsoft-Hyper-V-All DisplayName : Hyper-V Description : Provides services and management tools for creating and running virtual machines and their resources. RestartRequired : Possible State : Disabled CustomProperties :在 PowerShell 控制台中,输入以下命令:
Get-WindowsOptionalFeature -FeatureName HypervisorPlatform -Online如果未启用虚拟机监控程序,将显示类似于以下示例的消息,指示虚拟机监控程序Platform 的状态 已禁用:
FeatureName : HypervisorPlatform DisplayName : Windows Hypervisor Platform Description : Enables virtualization software to run on the Windows hypervisor RestartRequired : Possible State : Disabled CustomProperties :
如果未启用 Hyper-V 或 HypervisorPlatform,请使用以下 PowerShell 命令启用它们:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform -All
这些命令完成后,重新启动。
有关启用 Hyper-V 的详细信息(包括使用部署映像服务和管理工具启用 Hyper-V 的技术),请参阅 安装 Hyper-V。
更多故障排除提示
以下建议通常用于诊断 Android 仿真器问题。
从命令行启动模拟器
如果模拟器尚未运行,可以从命令行(而不是 Visual Studio 内部)启动它,以查看其输出。 通常,Android 模拟器 AVD 映像存储在以下位置: %userprofile%\.android\avd。
可以通过指定 AVD 文件夹名称从此位置启动带有 AVD 映像的模拟器。 例如,此命令启动名为 Pixel_API_27的 AVD:
"C:\Program Files (x86)\Android\android-sdk\emulator\emulator.exe" -partition-size 2000 -no-boot-anim -verbose -feature WindowsHypervisorPlatform -avd pixel_5_-_api_30 -prop monodroid.avdname=pixel_5_-_api_30
此命令假定 Android SDK 安装在 C:\Program Files (x86)\Android\android-sdk 的默认位置。 如果在其他位置安装了 Android SDK,请将上述命令修改为正确的位置。
查看设备管理器日志
通常可以通过查看设备管理器日志来诊断仿真器问题。 这些日志将写入以下位置: %userprofile%\AppData\Local\Xamarin\Logs\16.0。
可以使用文本编辑器查看每个 DeviceManager.log 文件。