在Azure Windows 10上运行安卓模拟器

3
我正在尝试在运行Windows 10 Pro版本1809的Azure VM上运行安卓模拟器,但是我遇到了以下错误信息:
C:\Program Files (x86)\Android\android-sdk\emulator>emulator -AVD androidemulatorapi28 emulator: ERROR: x86 emulation currently requires hardware acceleration! Please ensure the Windows Hypervisor Platform (WHPX) is properly installed and usable. CPU acceleration status: HAXM is not installed on this machine Hyper-V已启用:

enter image description here

还有 Windows Hypervisor 平台:

enter image description here

虚拟机的大小为D2_v3,Dv3系列应支持嵌套虚拟化。 这里这里这里都声称它可以支持,并且安卓模拟器可以正常运行。就我所知:

enter image description here

...是Dv3系列的一部分。

可能出了什么问题?


我可以在Azure Windows虚拟机的Hyper-V中运行Ubuntu虚拟机。
禁用Hyper-V和Windows Hypervisor Platform,安装HAXM并运行时,会出现以下错误:

enter image description here

根据这篇 Medium文章 和这个 StackOverflow 讨论 的作者所说,需要一种特殊的自定义OpenGL实现,因为特定的Azure VM大小不带有GPU。然而,按照该文章的步骤,我遇到了另一种类型的崩溃——当使用作者Github存储库中的Mesa3D+LLvmpip版本的opengl32.dll替换system32中的OpenGL文件并运行Android模拟器时:

enter image description here


我发现有一个Github仓库 - 分发Mesa3D和LLvmpip - 下载mesa3d-19.1.3-release-mingw.exe并运行cmd文件:

enter image description here

在命令提示符中出现以下信息:

此部署实用程序针对没有工作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消息驱动程序投诉并成功运行仿真器。

看起来这个问题已经过时并被放弃了:https://dev59.com/j6Pia4cB1Zd3GeqPsxLH。页面顶部还有一个通知 - 不支持硬件加速。 - lolelo
使用 GPU Caps Viewer 工具显示 GL_VENDOR: VMware, Inc。而且 Android 文档也指出这是不可能的。 - lolelo
我目前正在使用一种解决方法,通过将我的Windows虚拟机上的Visual Studio连接到我的Mac(我认为两者必须在同一个VPN中),按照此设置:https://learn.microsoft.com/en-us/xamarin/android/troubleshooting/questions/connect-android-emulator-mac-windows - 允许我使用安装在我的Mac上的Android。 - lolelo
你在 Azure 虚拟机上成功运行了 Android 模拟器吗? - Major
@Major 不,我从来没有这样做过! - lolelo
显示剩余5条评论
4个回答

1
请注意:这不是一个解决方案,只是分享我尝试了大约10-20种方法后学到的细节:
  • 要在Azure VDI中启用虚拟化,您需要启用Hyper-V功能。
  • 之后,您可以在任务管理器 -> 性能中看到虚拟化设置为true
  • 如果没有,请尝试从命令提示符中启用它。 bcdedit /set hypervisorlaunchtype auto

  • 之后,虚拟化被启用。

  • 现在,您将无法安装Intel HAXM,因为Hyper-V和Intel HAXM之间存在虚拟化竞争条件。
  • 因此,在没有Intel HAXM的情况下,AVD将无法运行。

  • 如果没有使用Hyper-V启用虚拟化,AVD将只显示黑屏,并且无法启动。

因此,我认为目前还没有解决这个问题的方法,我已经在Google和Stack Overflow上搜索了一切。如果有人找到解决方案,请在此发布。


0
  1. 请访问链接"https://github.com/intel/haxm"。

  2. 向下滚动查找"下载"。

  3. 下载"haxm-windows_v7_7_1.zip"(Windows)和"haxm-macosx_v7_7_1.zip"(macOS)。

  4. 安装软件包即可解决问题。


0

我和你一样,在使用Win10或Windows Server 2019的DV3和EV3系列时遇到了同样的问题。但是,如果你愿意尝试这个选项,我已经在ubuntu上解决了这个问题。不需要Hyper-V或HAXM,它使用的是KVM。


我想在Xamarin中创建多目标库:https://stackoverflow.com/questions/57173464/how-to-multitarget-in-xamarin-forms-with-visual-studio-for-mac 这只有在Windows上的Visual Studio才能实现 :) - lolelo


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