运行 WSL2 和 Android Studio 同时使用 Ryzen 处理器
Running WSL2 and Android Studio at the same time with a Ryzen processor
我想 运行 WSL2 和我的 api 以及一个 Android 模拟器到 运行 我的应用所以我可以测试说 api.当我激活 Hyper-V 时,WSL2 运行良好。然后我尝试使用 Android Studio 的模拟器,但它只是挂起,从未启动模拟器。
现在,如果我完全停用 Hyper-V(在 windows 功能屏幕中并通过 bcdedit /set hypervisorlaunchtype off
),模拟器会完美启动,但当然 WSL2 现在无法工作...
我看了很多这里的主题,但没有成功。例如 How to run Android emulator on windows while using WSL2 with zsh?, or this tutorial。到目前为止没有成功。
如前所述,我使用的是 Ryzen 处理器。
我找到了解决方法。我是 运行 Windows 11 Pro,更新 21H2,OS build 22000.51,AMD.
这里是 Google documentation 如何为 AMD 处理器设置模拟器。它需要禁用 Hyper-V 和 WHPX。这与 运行 WSL2 不匹配。
我的设置是:
- Android Studio 和 IntelliJ 运行 Windows
- Docker、Ubuntu (WSL2)
下的数据库和其他服务 运行
我做了什么:
- 启用 Hyper-V 和 WHPX。
- 在 Hyper-V 管理器中添加了新的 Android VM like that
- 找到 Android VM IP 地址(我通过 运行 Android wi-fi 选项做到了)并使用
adb connect <ip goes here>:5555
- 如果连接正确,它应该出现在 Android Studio 中。
我尝试 adb connect 从 Ubuntu 连接到 Android,但开箱即用。一些 WSL2 > 主机重定向应该可行,但我目前不需要它,也没有进一步研究它。
最后困扰我的是默认 Android VM 分辨率(水平方向看起来像平板电脑)。可以调整 .
我们可能需要等待 Google 推出使用与 WSL2 相同仿真类型的模拟器。
不work/are缺少的东西(或者我不知道怎么做):
- 无法即时更改屏幕方向
- 打字时软件键盘不显示(当您需要用它测试 UI 时出现问题)
- 在 Hyper-V 中没有 GPU 加速(微软出于安全原因禁用了它(?)但似乎有一种方法可以启用它,还没有尝试过,因为我的需要默认性能很好)
所以,有人在问题跟踪器上给出了很好的答案!
https://issuetracker.google.com/issues/202188690#comment18
基本上,正如他所说,It's being caused by the XSAVE disable code in the WHPX API integration -- target/i386/whpx-all.c -- commenting out this line appears to make it work
:
https://android.googlesource.com/platform/external/qemu/+/refs/heads/emu-master-dev/target/i386/whpx-all.c#1768
在 issuetracker 中,另一个用户已经发布了已经编译的 exe
文件,如果有人需要的话。对我来说,它修复了所有问题,模拟器现在可以正常工作了。
我想 运行 WSL2 和我的 api 以及一个 Android 模拟器到 运行 我的应用所以我可以测试说 api.当我激活 Hyper-V 时,WSL2 运行良好。然后我尝试使用 Android Studio 的模拟器,但它只是挂起,从未启动模拟器。
现在,如果我完全停用 Hyper-V(在 windows 功能屏幕中并通过 bcdedit /set hypervisorlaunchtype off
),模拟器会完美启动,但当然 WSL2 现在无法工作...
我看了很多这里的主题,但没有成功。例如 How to run Android emulator on windows while using WSL2 with zsh?,
如前所述,我使用的是 Ryzen 处理器。
我找到了解决方法。我是 运行 Windows 11 Pro,更新 21H2,OS build 22000.51,AMD.
这里是 Google documentation 如何为 AMD 处理器设置模拟器。它需要禁用 Hyper-V 和 WHPX。这与 运行 WSL2 不匹配。
我的设置是:
- Android Studio 和 IntelliJ 运行 Windows
- Docker、Ubuntu (WSL2) 下的数据库和其他服务 运行
我做了什么:
- 启用 Hyper-V 和 WHPX。
- 在 Hyper-V 管理器中添加了新的 Android VM like that
- 找到 Android VM IP 地址(我通过 运行 Android wi-fi 选项做到了)并使用
adb connect <ip goes here>:5555
- 如果连接正确,它应该出现在 Android Studio 中。
我尝试 adb connect 从 Ubuntu 连接到 Android,但开箱即用。一些 WSL2 > 主机重定向应该可行,但我目前不需要它,也没有进一步研究它。
最后困扰我的是默认 Android VM 分辨率(水平方向看起来像平板电脑)。可以调整
我们可能需要等待 Google 推出使用与 WSL2 相同仿真类型的模拟器。
不work/are缺少的东西(或者我不知道怎么做):
- 无法即时更改屏幕方向
- 打字时软件键盘不显示(当您需要用它测试 UI 时出现问题)
- 在 Hyper-V 中没有 GPU 加速(微软出于安全原因禁用了它(?)但似乎有一种方法可以启用它,还没有尝试过,因为我的需要默认性能很好)
所以,有人在问题跟踪器上给出了很好的答案!
https://issuetracker.google.com/issues/202188690#comment18
基本上,正如他所说,It's being caused by the XSAVE disable code in the WHPX API integration -- target/i386/whpx-all.c -- commenting out this line appears to make it work
:
https://android.googlesource.com/platform/external/qemu/+/refs/heads/emu-master-dev/target/i386/whpx-all.c#1768
在 issuetracker 中,另一个用户已经发布了已经编译的 exe
文件,如果有人需要的话。对我来说,它修复了所有问题,模拟器现在可以正常工作了。