我能否在 Microsoft hyper-v 虚拟机中运行 Android Studio(Android SDK 模拟器)?

42
我可以在 Microsoft hyper-v 虚拟机中运行 Android Studio 和 Android SDK 模拟器吗?请仔细阅读以下内容。
我已经经常使用 Hyper-V 用于其他目的。现在,我需要开发一个 Android 应用程序。
我安装了一个新的虚拟机(Windows 10)并安装了 Android Studio。我无法运行 Android 模拟器,因为缺少“intel HAXM软件”。
我阅读了很多关于不能在 Android Studio 旁边安装 Hyper-V 的文章,但是没有一篇文章谈到在 Hyper-V 虚拟机中安装的情况。

1
你能否在 Hyper-V 中运行虚拟机呢?因为这本质上就是你正在做的事情。 - OneCricketeer
3
我可以在Microsoft Hyper-V虚拟机中运行Android Studio吗?--那应该没问题。但这不是你的问题。“我无法运行Android模拟器,因为缺少'Intel HAXM软件'。”--Android Studio不是你的问题。Android SDK模拟器才是你的问题。ARM模拟器映像可能可以在你的虚拟机中工作,但速度会非常慢。我怀疑x86模拟器映像是否能在你的虚拟机中工作。要么在Android硬件上测试你的应用程序,要么尝试第三方模拟器,如Genymotion。 - CommonsWare
1
明白了,简而言之答案是:不是吗?! - Dennis
2
Android模拟器支持Hyper-V加速目前处于预览阶段。这应该消除使用Microsoft的Android模拟器或在嵌套虚拟机中运行模拟器的需要。有关详细信息,请参见此博客:https://blogs.msdn.microsoft.com/visualstudio/2018/05/08/hyper-v-android-emulator-support/ - joslack
7个回答

53

请参考以下链接:如何在Windows上运行Android Studio而不禁用Hyper-V

解决方案(如果您不想禁用Hyper-V)是使用微软的Android模拟器,可从此处免费下载。

为了在Android Studio中使用它,您需要首先运行模拟器。然后,在Android Studio中,转到Run > Edit Configurations...并在部署目标选项下选择Show Device Chooser Dialog

运行您的项目,并选择VS模拟器,忽略“关闭Hyper-V”的邀请。


3
我尝试使用你的解决方法。但是当我试图使用Microsoft模拟器运行Android模拟器时,它会给出与在Android Studio中运行Android模拟器时类似的错误(实际上是抱怨与Hyper-V不兼容)。你有其他的替代方案吗? - Timon
https://www.visualstudio.com/zh-hans/vs/msft-android-emulator/?rr=https%3A%2F%2Fwww.google.com%2F - lotosbin
1
VS的Android模拟器缺少新的API版本。不幸的是,微软不会为它发布新版本。请阅读这篇文章:https://forums.xamarin.com/discussion/comment/278669/#Comment_278669 - Junle Li
1
针对Android Studio开发人员:请转到答案中提到的帖子底部下载Microsoft Android模拟器的独立安装程序,该程序可与Android Studio一起使用,或单击此链接:https://aka.ms/vscomemudownload。 - RBT
1
@JunleLi 我不确定你的评论是否仍然有效(Win10 Apr2018更新后)...我能够通过Hyper-V运行Pie Pixel 2仿真。 - George 2.0 Hope

11
Hyper-V在Windows 10周年更新(2016年8月发布)和Windows Server 2016中增加了对嵌套虚拟化的支持。然而,Microsoft仅支持在VM中运行Hyper-V,而不是HAXM。根据官方文档,“除了Hyper-V之外的虚拟化应用程序不受Hyper-V虚拟机支持,并且可能会失败。”
话虽如此,最新版HAXM的变更日志报告称,英特尔“修复了与Hyper-V嵌套虚拟化支持有关的问题,该问题导致Android模拟器无法启动。”因此,虽然Microsoft不支持,但似乎在Hyper-V VM中运行嵌套的HAXM是可能的。
如果是这种情况,为了让HAXM在Hyper-V VM中工作,您需要为该VM启用嵌套。在VM处于关闭状态时,在VM上运行此命令:
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

之后,您应该能够在虚拟机内安装最新版本的HAXM,从而可以使用Android模拟器。再次说明,我个人没有验证过这一点,并且它不受Microsoft支持,所以您的结果可能会有所不同。

完整披露:我在Hyper-V团队的Microsoft工作。

[编辑于7/2/2018]:Android模拟器支持Hyper-V加速已于今年早些时候宣布,并且目前处于预览阶段。请参见公告帖子获取详细信息。


1
虽然从技术上讲它可以工作,但速度慢得要死。而且不会使用GPU。所以...无法使用。 - Miha Markic
@MihaMarkic 如果你正在运行ARM-VM,就会发生这种情况。 - Hunv
1
对我来说,Android SDK Manager不愿意安装HAXM。您可以在此处自行下载和安装:https://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager-intel-haxm。之后,我必须将VM设置中的GPU模拟器模式设置为“自动”,然后模拟器才能在VM中工作。 - Hunv
如果在这方面有任何变化,请务必及时更新我们。 - Jansky
更新:今年早些时候,我们宣布了针对Android模拟器的Hyper-V加速支持预览版(即使用Hyper-V代替HAXM)。这消除了在VM中嵌套运行模拟器的需要。详情请参见此处:https://blogs.msdn.microsoft.com/visualstudio/2018/05/08/hyper-v-android-emulator-support/ - joslack

8

Microsoft发布了一个链接,允许Hyper-V作为Windows中的Android模拟器的硬件加速器。

链接在这里

以下是说明。

  1. 在Windows搜索框中输入About

  2. 在搜索结果中选择About your PC

  3. About对话框中向下滚动到Windows specifications部分。

  4. 验证Version至少为1803

  5. 在Windows搜索框中输入windows features并确保选中Hyper-VWindows Hypervisor Platform两项功能。

  6. 在Android Studio中打开SDK Manager,确保您的Android模拟器版本至少为27.2.7

  7. 重启计算机,并在Android Studio的AVD Manager中重新启动Android模拟器。


谢谢!一开始我并不清楚我需要启用两个不同的窗口功能;我只启用了Hyper-V。但我仍然不明白这两者之间的区别是什么。 - jlh

7

确定:运行Windows 10版本1803,启用Hyper-V和Windows Hypervisor平台,Android Studio的模拟器可以正常工作。我正在使用Android Studio 3.2.1和Android Emulator 28.0.22。


3

微软已经宣布了更好的解决方案。

今天,在Build 2018大会上,我们宣布推出了与Hyper-V兼容的Google Android模拟器预览版,该版本可在Windows 10 April 2018 Update上使用。这使得开启Hyper-V的开发人员可以使用硬件加速的Android模拟器,无需切换到英特尔的HAXM hypervisor。Windows Hyper-V团队在Xamarin团队的帮助下完成了这项惊人的工作。


3

在开始按照lotosbin建议的步骤进行之前,请确保你完成了以下操作:

打开管理员命令提示符并输入以下命令,然后重新启动模拟器。

`reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Android SDK Tools" /v Path /d %localappdata%\Android\sdk`

或手动更新注册表:

  1. 在注册表编辑器中导航至HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node。
  2. 如果没有Android SDK Tools键,请创建一个新的。
  3. 导航到该键。
  4. 创建一个名为Path的新字符串值。将其值设置为您的Android SDK的位置,例如C:\ Users \ YourName \ AppData \ Local \ Android \ sdk。

1
为什么?这是干什么用的?如果不做会发生什么? - Hunv
这实际上是回答另一个问题。如果你按照@lotsobin的建议 https://dev59.com/FlsW5IYBdhLWcg3wKkve#38090974 做了,但是你没有看到设备出现,那么你应该尝试这里解释的方法。 - Jason Saruulo
在我的电脑上,我已经有了这个注册表项,其中“path”字符串指向“C:\Program Files (x86)\Android\android-sdk”。我是否仍然需要按照您的帖子更新此条目以使用AppData路径? - RBT

1

为了补充@lotosbin的答案并添加额外信息,本段内容是关于当您尝试从Android Studio中启动您的应用程序时,在Microsoft独立Android模拟器上的情况。

选择部署目标窗口中,有两个部分,分别是:

  1. 已连接设备 - 它显示通过USB端口连接到计算机的物理安卓设备,例如手机、平板电脑,如果您想将应用程序部署到实际设备中
  2. 可用虚拟设备 - 它显示出从特定设备定义构建的安卓虚拟模拟器,例如Nexus 5X API 28

有趣的是,Microsoft的安卓模拟器显示在已连接设备部分。因此,即使它只是一个虚拟模拟器,Android Studio也将Microsoft的安卓模拟器视为物理设备。请参见下面的屏幕截图:

enter image description here

此外,您还可以在 Hyper-V 管理器中检查 Microsoft 的 Android 模拟器的健康状况和当前状态,如下图所示:

enter image description here


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