【发布时间】:2019-12-06 00:23:14
【问题描述】:
我正在尝试在运行 Windows、Windows 10 Pro 版本 1809 的 azure VM 上运行 android 模拟器 - 但我在运行 android 模拟器时收到以下错误消息:
C:\Program Files (x86)\Android\android-sdk\emulator>emulator -AVD androidemulatorapi28 仿真器:错误:x86 仿真当前需要硬件加速! 请确保 Windows Hypervisor Platform (WHPX) 已正确安装且可用。 CPU加速状态:本机未安装HAXM
hyper-v 已启用:
还有 Windows Hypervisor 平台:
VM 的大小是D2_v3 和 Dv3 - 系列应该支持嵌套虚拟化。 Here、here 和 here 声称它是这样的,并且是 android 模拟器功能。据我了解:
...是 Dv3 系列的一部分。
可能是什么问题?
我能够在 Azure Windows VM 的 Hyper-V 中运行 Ubuntu VM。
禁用Hyper-V 和Windows Hypervisor Platform,安装HAXM 并运行我收到此错误:
根据此medium article 和此 StackOverflow discussion 的作者 - OpenGL 的特殊自定义实现是必要的 - 因为特定的 azure VM 大小不配备 GPU。但是,按照文章的步骤,我遇到了另一种类型的崩溃 - 当使用作者 Github 存储库中的 Mesa3D+LLvmpip version of opengl32.dll 时,替换 system32 中的 OpenGL 文件并运行 android 模拟器:
我发现有一个gihub repo - 分发 Mesa3D 和 LLvmpip - 下载 mesa3d-19.1.3-release-mingw.exe 并运行 cmd 文件:
cmd中有如下信息:
此部署实用程序针对没有工作 GPU 和任何用例的系统 硬件加速 OpenGL 不可用的地方。这主要涵盖 云环境中的虚拟机和 RDP 连接。有可能 用于替换 Microsoft Windows 收件箱 OpenGL 1.1 软件渲染 带有 Mesa3D 软管道、llvmpipe 或 SWR 驱动程序的驱动程序。
...这似乎适合驱动程序渲染问题。
我能够通过-avd myandroidemulatorapi28 以及以下两个标志-gpu angle_indirect 或-gpu swiftshader_indirect 中的任何一个来消除所有cmd 警告和错误。和set QEMU_AUDIO_DRV=none 在运行它之前。关于驱动问题的 GUI 消息仍然出现并且黑屏。
根据 mesa-dist-win GitHub 存储库的所有者 - 当他用他的机器模仿 VM 的状态时,他可以重现 GUI 消息潜水员投诉并且仍然成功运行模拟器。
【问题讨论】:
-
The Xamarin docs state "您不能在另一个虚拟机中运行虚拟机加速模拟器,例如由 VirtualBox、VMWare 或 Docker 托管的虚拟机。您必须直接运行 Android 模拟器在您的系统硬件上”。您是否考虑过使用Visual Studio Emulator for Android?没试过,但也许它为嵌套 VM 提供了更好的支持。
-
它似乎已经过时并且被遗弃了:stackoverflow.com/questions/44864647/…。页面顶部还有一条通知——不支持硬件加速。
-
使用
GPU Caps Viewer表示GL_VENDOR: VMware, Inc。并且 android 文档也声明是不可能的。 -
这里是关于在 windows vm 上运行 android 模拟器的更长讨论:github.com/pal1000/mesa-dist-win/issues/26
-
我目前正在通过以下设置将 Windows vm 上的 Visual Studio 连接到我的 Mac(我认为两者必须在同一个 vpn 中)来解决此问题:docs.microsoft.com/en-us/xamarin/android/troubleshooting/… - 允许我使用我的 mac 上安装的 android。
标签: android azure virtual-machine emulation