Android 安装 WSL2 后,Studio 模拟器无法在 Windows 11 上运行

Android Studio Emulator is not working on Windows 11 when WSL2 is installed

设置:

问题: 一旦我安装了 WSL2,模拟器就会停止工作。它给出以下错误消息:

C:\Users\gusta\AppData\Local\Android\Sdk\emulator>emulator.exe -avd Android_TV_1080p_API_300
emulator: Android emulator version 30.8.4.0 (build_id 7600983) (CL:N/A)
handleCpuAcceleration: feature check for hvf
added library vulkan-1.dll
Failed to open /qemu.conf, err: 2
C:\Users\gusta\AppData\Local\Android\Sdk\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe: WHPX: Failed to setup partition, hr=c0350005
C:\Users\gusta\AppData\Local\Android\Sdk\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe: failed to initialize WHPX: Invalid argument

在 android 模拟器之前在 Intel i7 4770k 处理器上工作的同时使用 WSL2,但在处理器升级到 AMD Ryzen 5900x 并全新安装 Windows 后停止工作11.

澄清一下:我不是想 运行 来自 WSL2 的模拟器,而是想 运行 来自 Android Studio。当尝试从 Android Studio 启动它时,它永远不会启动,当尝试从 Windows 命令行 运行 启动它时,出现上述错误。

“无法打开 /qemu.conf”可以通过手动创建该文件来解决,如 this 答案所述。然而,这并没有解决 WHPX 的两个后来的错误。

我已按照 this 页面上的官方说明进行操作(遵循带有 Hyper-V 选项 WHPX 的 AMD)。我认为问题与 WSL2 使用的 Hyper-V 运行ning 有关,如果我没有记错的话。但是根据上面的 link 应该可以 运行 仿真器与使用 WHPX 的 Hyper-V 同时运行。我也尝试过使用适用于 AMD 处理器的 Android Emulator Hypervisor 驱动程序,这给了我完全相同的结果。

已激活 Windows 功能:

感谢您的帮助,如果我需要添加更多信息请告诉我

较新的答案

我发现并测试了较短的肘节机构。

Windows 功能的配置:

  • Windows Subsystem for Linux 已安装。
  • Windows Hypervisor Platform 已安装。
  • Hyper-V 已安装。

如果需要Emulator,只需关闭Hypervisor + Restart即可。 运行: bcdedit /set hypervisorlaunchtype off

如果您需要 Docker 返回,您可以 运行 管理程序从而禁用模拟器。 运行: bcdedit /set hypervisorlaunchtype auto

设置Hypervisor后需要重启

您不能同时 运行 两者。另一个值得检查的论坛 How about running docker? 在我下面的旧答案中。


旧答案

我想我解决了这个问题,从 CMD / Android Studio 测试到 运行 和 运行 与安装 WSL 之前一样完美。我们有几个步骤:


正在配置 Windows 功能:

  1. 已删除 Windows Subsystem for Linux
  2. 已移除Windows Hypervisor Platform
  3. 已移除Hyper-V

这是我当前的设置:


正在还原 AVD 设置

我知道删除后会有一些可能性,因为 AVD 仍然会遇到与以前相同的错误,并且预计会进入 WSL。当 运行:

我偶然发现了一些东西

C:\Users\[NAME]\AppData\Local\Android\Sdk\emulator\emulator-check.exe accel

该命令将检查当前加速度。说明需要开启Hypervisor并给出具体的帮助: 运行 bcdedit /set hypervisorlaunchtype off.

运行在 bcdedit 之后,我重新启动,一切都恢复了。现在我可以从 CMD 和 Android Studio 完美地 运行 模拟器。


运行宁docker怎么样?

可悲的事实,是的,你不能 运行 两者平行。本论坛有几种解决方法:

多个选项 运行从更改模拟器开始,在需要时使用上述步骤添加和删除 docker,创建嵌套虚拟机等。我个人目前的选择是暂时使用另一个模拟器为后者删除 docker。


这个问题只发生在 AMD 处理器上,我有两个系统都带有 WSL2 和 Docker 运行ning 在最新的 Windows 11(Insider Beta)版本上。一个配备 AMD Ryzen 5950,一个配备 Intel i7-8086K。 在 Intel 系统上,模拟器 运行 可以与 WSL2 和 Docker 一起使用硬件加速。

在 AMD 上,我 运行 在使用硬件加速 运行 连接模拟器时遇到同样的错误。在 Windows 10 Insider 构建之前 Windows 11 它仍然有效。

之前在Windows 10 build 10.0.21292 中引入了一个非常相似的问题 后来在 build 21327 中得到修复。(https://github.com/microsoft/WSL/issues/6471) 但这个问题同时影响了 Intel 和 AMD。

我还没有尝试关闭 AMD fTPM,因为这是除了将 Windows 10 Insider(开发环)更新为 Windows 11 之外的唯一其他更改。

用于 AMD 处理器的 Android Emulator Hypervisor 驱动程序仅在禁用 Windows Hypervisor 时有效,它不适用于 WHPX。

Windows反馈中有很多关于此问题的报告,请点赞。

Android Studio 模拟器在 Windows 11 上不支持 运行 Hyper-V,我们可以将 Hyper-V 禁用到 运行,但如果我们这样做应用程序这需要 Hyper-V 像 WSL2 一样 运行,Docker 然后无法 运行。

在等待 Google 更新 Android Studio 模拟器支持 Hyper-V 时,我们有一个解决方案 运行 通过使用另一个支持 Hyper-V 的模拟器,如 Bluestack 5 版本“ Nougat 64 位(支持 Hyper-V)”位于 link 下面 https://www.bluestacks.com/download.html

此问题由 Google 错误 https://issuetracker.google.com/issues/202188690

跟踪

我终于使用 this 修复(答案编号 48)解决了这个问题。在 windows 解决此问题之前,这似乎是一个有效的解决方法。我下载了 windows 的编译版本并将其移动到我的模拟器路径 C:\Users\<username>\AppData\Local\Android\Sdk\emulator。似乎还有 linux 和 mac 可用的版本,但我还没有测试过这些版本。