安装了WSL2的Windows 11上,Android Studio模拟器无法工作。

8

设置:

  • Windows 11 Home 21H2 22000.132
  • AMD Ryzen 5900X
  • WSL2
  • Android Studio 最新版本(也尝试了最新的beta版本)

问题: 一旦我安装了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

在Intel i7 4770k处理器上使用WSL2和安卓模拟器同时运行是可行的,但是在更新为AMD Ryzen 5900x处理器并进行Windows 11全新安装后就不再工作了。
需要澄清的是:我并不是试图从WSL2中启动模拟器,我正在尝试从Android Studio中运行它。当尝试从Android Studio启动时,它从未启动过;当尝试从Windows命令行运行它时,出现了上述错误。
"Failed to open / qemu.conf" 可以通过手动创建该文件来解决,如答案所述。然而,这并不能解决后面两个关于WHPX的错误。
我已经按照页面上的官方说明进行操作(选择了使用WHPX的AMD选项)。我认为问题与Hyper-V有关,如果我没有弄错的话,WSL2正在使用它。但是根据上述链接,应该可以使用WHPX同时运行模拟器和Hyper-V。我还尝试使用适用于AMD处理器的Android模拟器超级管理程序驱动程序,但结果完全相同。
已激活的Windows功能: Windows features 非常感谢任何帮助,并请告诉我是否需要添加更多信息。

有完全相同的问题。尝试在错误后禁用WSL没有帮助。目前我无法使用任何加速器启动模拟器。 - Andrea Lk
1
另一方面,我可以成功地使用 ./emulator -no-accel -avd Pixel_3_API_30_Play 启动模拟器... 但是没有加速的话,它无法承受使用。欢迎任何帮助! - Andrea Lk
很有趣。没有尝试过无加速度。下班后会试一下。但正如你所说,没有加速度可能不是一个有效的解决方法。 - Gustav P Svensson
6个回答

5

新答案

我找到并测试了一个更短的切换机制。

配置 Windows 功能:

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

如果您需要模拟器,则只需关闭 Hypervisor + 重新启动。运行:bcdedit /set hypervisorlaunchtype off

如果您需要 Docker,请运行 Hypervisor,因此禁用模拟器。运行:bcdedit /set hypervisorlaunchtype auto

设置 Hypervisor 后需要重新启动

不能同时运行两者。在下面我的旧答案中,还值得检查的另一个论坛是如何运行 Docker?


旧答案

我认为我解决了这个问题,并测试了从 CMD / Android Studio 运行,就像在安装 WSL 之前一样完美运行。我们需要几个步骤:


配置 Windows 功能

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

以下是我的当前设置:

Windows Feature


恢复 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?

令人遗憾的是,您不能同时运行两者。在这个论坛中有几种解决方法:

如何在 Windows 上同时运行 Docker 和 Android Studio 模拟器?

多种选择,包括更改模拟器,在需要时使用上述步骤添加和删除 Docker,创建嵌套的虚拟机等。目前我的个人选择是暂时使用另一个模拟器,并删除 Docker。



谢谢!所以根据你的发现,没有办法同时运行WSL2和安卓模拟器?你知道这只是在AMD处理器上的问题吗? - Gustav P Svensson
1
据我所知,这不是处理器问题。有几个论坛提到了AMD在这里存在问题,但我相信Intel处理器也有同样的问题。根本原因在于AVD模拟器和Docker中的虚拟化机制。这个问题只会在Windows系统中触发。在Linux系统中,Docker + AVD模拟器可以并行运行,因为Linux中的AVD模拟器使用隔离虚拟化。所以,这是Windows虚拟化问题和Docker / AVD模拟器虚拟化兼容性问题。 - Andrea Lk

2

我最终使用修复方法(答案编号48)使其正常工作。在Windows修复此问题之前,这似乎是一种有效的解决方法。我下载了Windows版本的编译版本,并将其移动到模拟器路径C:\Users\<username>\AppData\Local\Android\Sdk\emulator。看起来也有适用于Linux和Mac的版本,但我尚未测试过。


1

目前谷歌方面对这个漏洞的优先级不是很高。如果人们能够在漏洞上发表评论,说明他们也遇到了问题,或许谷歌会提高优先级。 - Johan Paul

0

这个问题只出现在 AMD 处理器上,我有两个系统都运行最新的 Windows 11(Insider Beta)构建版,并且都安装了 WSL2 和 Docker。一个是 AMD Ryzen 5950,另一个是 Intel i7-8086K。

在 Intel 系统上,模拟器与 WSL2 和 Docker 一起使用硬件加速运行良好。

在 AMD 上,当使用硬件加速运行模拟器时,我遇到了相同的错误。在 Windows 11 之前的 Windows 10 Insider 构建中仍然可以正常工作。

类似的问题之前在 Windows 10 Build 10.0.21292 中出现过,在 Build 21327 中得到了修复。https://github.com/microsoft/WSL/issues/6471 但该问题影响了 Intel 和 AMD 两者。

我还没有尝试关闭 AMD fTPM,因为除了将 Windows 10 Insider (dev ring)升级到 Windows 11 之外,这是唯一的其他更改。

针对 AMD 处理器的 Android 模拟器超级管理员驱动程序只在禁用 Windows Hypervisor 时才能运行,它不适用于 WHPX。

Windows 反馈中充满了关于这个问题的报告,请投票支持它们。


0

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)”,链接如下: https://www.bluestacks.com/download.html


1
虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。如果链接页面更改,仅链接的答案可能会失效。-【来自审查】 - AgentP
好的,我已经更新了我的回答以提供更多信息。 - Minh Nguyen

0
如果您已经完成了所有这些步骤,但仍然面临模拟器终止问题,请升级或下载您的显卡驱动程序并安装它。在我安装Windows 11后,我的Android Studio模拟器出现了这个问题。我尝试了很多步骤,但都没有用。之后,我检查了我的显卡驱动程序并安装了它。现在模拟器运行良好...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接