Can I run Android Studio (Android SDK emulator) in a Microsoft hyper-v virtual machine?

谁说我不能喝 提交于 2019-11-27 18:08:22
lotosbin

Refer to this link: How to run Android Studio on Windows without disabling Hyper-V

The solution (if you do not want to disable Hyper-V) is to use Microsoft’s Android emulator, which is a free download here.

In order to use this with Android Studio, you need to run the emulator first. Then, in Android Studio, go to Run > Edit Configurations... and select Show Device Chooser Dialog under Deployment Target Options.

Run your project, and select the VS Emulator, ignoring the invitation to “Turn off Hyper-V”.

Hyper-V added support for nested virtualization in the Windows 10 Anniversary Update (released August 2016) and Windows Server 2016. However, the only Microsoft-supported usage of nested virtualization is running Hyper-V within the VM, not HAXM. From the official documentation, "Virtualization applications other than Hyper-V are not supported in Hyper-V virtual machines, and are likely to fail."

That said, the change log for the latest release of HAXM reports that Intel "Fixed an issue with Hyper-V nested virtualization support, which had prevented Android Emulator from booting." So while it isn't supported by Microsoft, it seems running HAXM nested in a Hyper-V VM may be possible.

If that's the case, to get HAXM working in a Hyper-V VM, you will need to enable nesting for that VM. Run this command on the VM while it is in the OFF state:

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

After that, you should be able to install the latest version of HAXM within the VM, allowing use of the Android Emulator. Again, I haven't personally verified this, and it isn't supported by Microsoft, so your mileage may vary.

Full disclosure: I work at Microsoft on the Hyper-V team.

[Edit 7/2/2018]: Android Emulator support for Hyper-V acceleration was announced earlier this year, and is currently in preview. See the announcement post for details.

Microsoft posted a link to allow Hyper-V as hardware accelerator for android emulator run in windows.

The link is here

Here is the instructions.

  1. Enter About in the Windows search box.

  2. Select About your PC in the search results.

  3. Scroll down in the About dialog to the Windows specifications section.

  4. Verify that the Version is at least 1803.

  5. Enter windows features in the Windows search box and make sure both Hyper-V and Windows Hypervisor Platform are checked.

  6. Open SDK manager in Android Studio, make sure your Android Emulator version is at least 27.2.7.

  7. Restart your computer, and relaunch your Android Emulator in AVD Manager in Android Studio.

Confirmed: Running Windows 10 version 1803, with Hyper-V and Windows Hypervisor platform enabled, Android Studio's Emulator works. I am using Android Studio 3.2.1 and Android Emulator 28.0.22.

Just make sure before you start with the steps suggested by lotosbin you complete the following:

Open an admin command prompt and enter the following; then restart the emulator.

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

Or update the registry manually:

  1. In regedit, navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node.
  2. Create a new key named Android SDK Tools(if not there already).
  3. Navigate to that key.
  4. Create a new string value named Path. Set its value to the location of your Android SDK, which will be like C:\Users\YourName\AppData\Local\Android\sdk.

Microsoft has announced a better solution

Today, at Build 2018, we announced a preview of the Google Android emulator that’s compatible with Hyper-V, available on the Windows 10 April 2018 Update. This enables developers with Hyper-V enabled on their machines to use a hardware accelerated Android emulator, without needing to switch to Intel’s HAXM hypervisor. Amazing work was done by the Windows Hyper-V team, with help from the Xamarin team, to make to this happen.

Just to complement @lotosbin's answer and add an additional information. This information is regarding when you are trying to start your app in Microsoft's standalone Android emulator from Android Studio.

On the Select Deployment Target window there are two sections namely:

  1. Connected Devices - It shows up physical android devices attached to your computer through USB port e.g. mobile, tablet if you want to deploy your app into an actual device
  2. Available Virtual Devices - It shows up Android virtual emulators which are build from specific device definition e.g. Nexus 5X API 28

Interestingly, Microsoft's Android emulator shows up in Connected Devices section. So Android Studio treats Microsoft's Android emulator as a physical device instead even though it is a virtual emulator only. Please see the screenshot below:

Additionally, you can check the health and current status of Microsoft's Android emulator inside Hyper-V Manager also as shown in below screenshot:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!