Android Emulator 疑难解答

您所在的位置:网站首页 windows无法关闭进程 Android Emulator 疑难解答

Android Emulator 疑难解答

2023-05-09 15:09| 来源: 网络整理| 查看: 265

Android Emulator 疑难解答 项目 05/05/2023

本文介绍配置和运行 Android Emulator 时最常见的警告消息和问题。 此外,本文还介绍了解决这些错误的解决方案,以及有助于诊断仿真器问题的各种故障排除提示。

在 Windows 上部署时出现的问题

部署应用时,仿真器可能会显示一些错误消息。 此处介绍最常见的错误和解决方案。

部署错误

若出现有关无法在仿真器上安装 APK 或无法运行 Android Debug Bridge (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 服务。 Google Play 商店 – 在虚拟设备中包含 Google Play 商店。

例如,此虚拟设备将包含 Google Play Services 和 Google Play 商店:

注意

Google Play 商店图片仅适用于某些基本设备类型,例如 Pixel、Pixel 2、Nexus 5 和 Nexus 5X。

性能问题

性能问题通常由以下某个问题引起:

仿真器在没有硬件加速的情况下运行。 使用基于 Arm 的映像在模拟器中运行的虚拟设备。

以下部分更详细地介绍了这些方案。

未启用硬件加速

启动虚拟设备且未启用硬件加速时,设备管理器会显示类似于下图的错误对话框:

若要修复此错误,请按照 硬件加速问题 部分中的故障排除步骤进行操作。

硬件加速问题

使用硬件加速时,可能会遇到配置问题或与计算机上的其他软件冲突。 故障排除的第一步是验证是否启用了硬件加速。 可以使用 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 Emulator 是最新的。 在 Visual Studio 中,按 “工具”>Android>Android SDK 管理器。 选择“ 工具 ”选项卡,查看 Android Emulator 条目是否有可用的更新。

硬件加速不可用

如果 Hyper-V 可用,将从 emulator-check.exe accel 命令返回类似以下示例的消息:

HAXM isn't installed, but Windows Hypervisor Platform is available.

如果 HAXM 可用,将返回类似以下示例的消息:

HAXM version 6.2.1 (4) is installed and usable.

如果硬件加速不可用,则当仿真器找不到 Hyper-V) 时,将在模拟器查找 HAXM (显示类似于以下示例的消息:

HAXM isn't installed on this machine

如果硬件加速不可用,请参阅 启用 Hyper-V 加速 ,了解如何在计算机上启用硬件加速。

BIOS 设置不正确

如果 BIOS 未正确配置为支持硬件加速,则运行 emulator-check.exe accel 命令时,将显示类似于以下示例的消息:

VT feature disabled in BIOS/UEFI

要解决此问题,请重启计算机的 BIOS 并启用以下选项:

虚拟化技术(标签可能因母板制造商而不同)。 硬件强制执行数据执行保护。

如果由于与 Hyper-V 和 HAXM 相关的问题仍然出现问题,请参阅以下部分。

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

如果未启用虚拟机监控程序,将显示类似于以下示例的消息,指示 HypervisorPlatform 的状态为 “已禁用”:

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。

HAXM 问题

导致 HAXM 问题的原因通常包括:与其他虚拟化技术冲突、设置不正确或 HAXM 驱动器不是最新版本。

HAXM 进程未运行

如果已安装 HAXM,则可通过打开命令提示符并输入以下命令来验证 HAXM 进程是否正在运行:

sc query intelhaxm

如果 HAXM 进程正在运行,应看到类似于下面结果的输出:

SERVICE_NAME: intelhaxm TYPE : 1 KERNEL_DRIVER STATE : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0

有关对 HAXM 进行故障排除的信息,请参阅 HAXM Wiki 中的 故障排除 。

HAXM 虚拟化冲突

HAXM 可能与其他使用虚拟化的技术(如 Hyper-V、Windows Device Guard 和某防病毒软件)冲突:

Hyper-V - 如果在 2018 年 4 月 Windows 10更新 (内部版本 1803) 启用 Hyper-V 之前使用某个版本的 Windows,请按照禁用 Hyper-V 以便可以启用 HAXM 中的步骤操作。

Device Guard - Device Guard 和 Credential Guard 可以防止在 Windows 计算机上禁用 Hyper-V。 若要禁用 Device Guard 和 Credential Guard,请参阅禁用 Device Guard。

防病毒软件 - 如果运行的防病毒软件使用硬件辅助虚拟化 ((如 Avast) ),请禁用或卸载此软件,重新启动,然后重试 Android 仿真器。

HAXM 的 BIOS 设置不正确

在 Windows 上,除非 BIOS 中启用了 Intel VT-x) (虚拟化技术,否则 HAXM 将不起作用。 如果 VT-x 处于禁用状态,则尝试启动 Android Emulator 时将收到类似于以下内容的错误:

此计算机满足 HAXM 的要求,但 Intel Virtualization Technology (VT-x) 未打开。

若要更正此错误,请将计算机启动到 BIOS 中,启用 VT-x 和 SLAT (二级地址转换) ,然后重新启动计算机。

禁用 Hyper-V

如果在启用 Windows 10 2018 年 4 月更新 (内部版本 1803) 和 Hyper-V 之前使用 Windows 版本,则必须禁用 Hyper-V 并重新启动计算机才能安装和使用 HAXM。 如果使用 Windows 10 2018 年 4 月更新 (版本 1803) 或更高版本,则 Android Emulator 版本 27.2.7 或更高版本可以使用 Hyper-V (而不是 HAXM) 进行硬件加速,因此无需禁用 Hyper-V。

可以按照下列步骤操作,在“控制面板”中禁用 Hyper-V:

在 Windows 搜索框中输入“Windows 功能”,然后在搜索结果中选择“打开或关闭 Windows 功能” 。

取消选中 Hyper V:

重新启动计算机。

或者,可使用以下 PowerShell 命令禁用 Hyper-V 虚拟机监控程序:

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor

Intel HAXM 和 Microsoft Hyper-V 不能同时处于活动状态。 遗憾的是,如果不重启计算机,就无法在 Hyper-V 和 HAXM 之间切换。

如果启用了 Device Guard 和 Credential Guard,上述步骤可能不会成功禁用 Hyper-V。 如果无法禁用 Hyper-V,或者它似乎已禁用,但 HAXM 安装仍然失败,请使用下一部分中的步骤禁用 Device Guard 和 Credential Guard。

禁用 Device Guard

Device Guard 和 Credential Guard 可阻止在 Windows 计算机上禁用 Hyper-V。 对于由负责组织配置和控制的域加入计算机而言,这种情况通常都是一个需要解决的问题。 在 Windows 10 上,请按照下列步骤操作,检查 Device Guard 是否在运行:

在 Windows 搜索框中输入“系统信息”,然后在搜索结果中选择“系统信息” 。

在“系统摘要”中,检查是否有“基于 Device Guard 虚拟化的安全性”;若有,检查是否处于“正在运行”状态:

如果已启用 Device Guard,请按照下列步骤操作,禁用 Device Guard:

确保已按照上一部分所述禁用“Hyper-V”(在“打开或关闭 Windows 功能”下)。

在 Windows 搜索框中,输入“gpedit.msc”,然后选择“编辑组策略”搜索结果。 这些步骤将启动“本地组策略编辑器”。

在“本地组策略编辑器”中,导航到“计算机配置>管理模板>”“系统>设备防护”:

将“打开基于虚拟化的安全性”更改为“已禁用”(如上所示),再退出“本地组策略编辑器”。

在 Windows 搜索框中,输入“cmd”。 右键单击搜索结果中的“命令提示符” ,再选择“以管理员身份运行”。

将以下命令复制并粘贴到命令提示符窗口(如果正在使用驱动器 Z:,请改为选择未使用的驱动器号):

mountvol Z: /s copy %WINDIR%\System32\SecConfig.efi Z:\EFI\Microsoft\Boot\SecConfig.efi /Y bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.efi" bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215} bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO,DISABLE-VBS bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=Z: mountvol Z: /d

重新启动计算机。 在启动屏幕上,应该会出现类似以下消息的提示:

是否要禁用 Credential Guard?

按下指示的键,以根据提示禁用 Credential Guard。

重启计算机后,再次检查,以确保 Hyper-V 已禁用(如前述步骤所述)。

如果 Hyper-V 仍未禁用,域加入计算机的策略可能会阻止禁用 Device Guard 或 Credential Guard。 在这种情况下,可以向域管理员申请豁免,以便能够选择禁用 Credential Guard。 或者,如果必须使用 HAXM,则可以使用未加入域的计算机。

更多故障排除提示

以下建议通常有助于诊断 Android Emulator 问题。

从命令行启动仿真器

如果模拟器尚未运行,可以从命令行 (启动它,而不是从 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 安装在其他位置,请将上述命令修改到正确的位置。

运行此命令时,它会在模拟器启动时生成多行输出。 具体而言,如果启用硬件加速并正常工作,则会打印以下示例等行。 在此示例中,HAXM 用于硬件加速:

emulator: CPU Acceleration: working emulator: CPU Acceleration status: HAXM version 6.2.1 (4) is installed and usable. 查看设备管理器日志

通常可通过查看设备管理器日志来诊断仿真器问题。 这些日志将写入以下位置: %userprofile%\AppData\Local\Xamarin\Logs\16.0。

可使用文本编辑器(如记事本)查看每个 DeviceManager.log 文件。 以下示例日志条目指示计算机上找不到 HAXM:

Component Intel x86 Emulator Accelerator (HAXM installer) r6.2.1 [Extra: (Intel Corporation)] not present on the system


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3