在VMWare上运行Android设备模拟器(通过Android Studio 2)是否可行?

21

我一直在运行Android Studio 1.5.1,使用WMWare上的Windows 2012 R2进行开发,一切正常。我能够顺利地运行设备模拟器,并在AVD中启动各种版本的Android。

Android Studio 2.x 更改 我最近安装了Android Studio 2.0(确切版本请参见下面的图像)。

Android Studio Version Info

现在当我尝试运行模拟器时,什么也不会发生。 实际上,当我尝试启动设备时,我确实在Studio的状态栏中看到一条消息,但是这条消息会消失,之后什么也不会发生。

starting...

有一个警告提示我需要关闭Hyper-V(请参见下面的图像),但我不认为这是可能的,因为这是一个虚拟机。

不再可能?

现在在虚拟机上无法再运行模拟器吗?

turn off Hyper-V


你不能在你的主机上开发,有具体的原因吗? - OneCricketeer
4个回答

13

较新版本的Andriod模拟器需要硬件虚拟化支持(Intel HAXM)。

不幸的是,大多数虚拟机不向客户机提供HAXM指令(即一个虚拟机内部的虚拟机),因此您将无法在虚拟机中使用模拟器。


4
是的,这正是我所说的。模拟器现在始终为x86架构,并始终使用HAXM。因此,我的答案是“否”。 ARM模拟是在更高层次上通过软件模拟(实际上是指令翻译)完成的,位于x86层之上。 - Tom Mettam
注意:使用Android Studio 2.1版本,我已经成功在VMWare虚拟机上运行了基于ARM的AVD(Android虚拟设备)。请参见下面的答案。 - raddevus
7
这是一个有点奇怪的问题,我猜你想知道是否可以在主机上运行AVD并从虚拟机中查看它? - Vlad B
1
@vlad-b,你找到你的问题的答案了吗? - mesut
1
@VladB 要连接到远程模拟器,您可以在虚拟机中使用命令 adb connect ip-address-of-emulator-host:5555(5555 是模拟器默认的 adb 调试端口)。这样做将使远程模拟器出现在已连接设备列表中,就像直接连接的设备或本地模拟器一样。请记住,许多模拟器仅监听本地连接,因此连接可能并不总是有效。您可以通过设置端口重定向来绕过此限制。 - Leon Lucardie
显示剩余5条评论

13

我刚在我的 Windows 2008 R2 虚拟机(运行在 VMWare 上)上安装了 Android Studio 2.1,并且很高兴地报告,它是可以在虚拟机上运行基于 ARM 的 AVD(Android 虚拟设备)的。

在 VMWare 上运行基于 ARM 的虚拟设备的步骤

  1. 进入 Android SDK 安装位置(在我的情况下,为 %appdata%\Android2\SDK\)
  2. 如果您在正确的位置,您应该看到像第一张图片中显示的目录结构和文件夹。

sdk dir

  1. 双击 AVD.exe 启动它。

您将看到一个如下图所示的窗口avd manager

  1. 仔细观察并注意此处正在运行一个 ARM(armeabi-v71) 镜像。当您下载镜像时,必须下载基于 ARM 的镜像。(x86 镜像无法在 VM 上工作)。

  2. 此外,您 不能 从 Android Studio 2.x 启动的 AVD 启动这些镜像。

  3. 确保您有一个名为 ANDROID_SDK_HOME 的环境变量,路径类似于 AVD 管理器顶部(在图像中)的路径。

一旦您完成了所有这些步骤,并在 VMWare VM 上启动基于 ARM 的镜像,它将警告您使用 HAXM 更快,但至少镜像将运行。

最后,你会发现如果你尝试从Android Studio的AVD管理器中启动虚拟设备,它会警告你需要关闭Hyper-V。当然,在虚拟机上无法关闭Hyper-V。

输入图像描述

编辑--运行Android 7 ARM映像

@mcflysoft问如何运行Android 7 ARM映像。起初我认为它不能工作,但是如果你打开SDK管理器并安装下图所示的确切ARM操作系统映像,则可以在Windows虚拟机上运行: android 7 arm

包含Google API的ARM映像

我尝试安装包含Google API的ARM映像,但它根本无法启动。我可以在c:\> adb shell logcat中看到记录的故障。

注意:非常缓慢

然而,运行Android 7似乎非常缓慢,我也没有看到Web浏览器。不确定它对你有多大帮助,但你可以使其工作。祝好运。

android 7 running


1
在“Android虚拟设备”选项卡的第三步中,列表中没有任何设备。如何获取基于ARM的映像设备? - mcfly soft
模拟器的第一次启动总是很麻烦。我不确定 Android 7 和要求是否可以在 VM 模拟器上运行。也许尝试早期的 Android 版本,看看是否可以启动。此外,其他人在这里报告了你所看到的问题:https://dev59.com/X2gu5IYBdhLWcg3wUlnt 可能有一些你可以尝试的方法,但似乎没有明确的答案。有时候,只需停止模拟器并重新启动即可解决此问题。 - raddevus
2
我可以确认,对于旧版本它是有效的。但是对于Android 7不行。 - mcfly soft
@BugShotGG 我刚刚启动了模拟器,并在 Studio 3.1.3 上的虚拟机上运行它,所以它仍然可以工作,但是速度非常慢,特别是与 x86 HAXM 映像相比。请记住,您只能在虚拟机上运行 ARM 映像,我从未在虚拟机上使 Google Play 映像工作。作为参考,这是我成功运行的确切 Android 映像的快照:https://i.stack.imgur.com/e0zxM.png - raddevus
@raddevus,我不明白我的情况出了什么问题。你能否查看一下我之前开的关于这个问题的帖子?帖子链接在我之前的评论中。先谢谢了! - BugShotGG
显示剩余7条评论

2
到目前为止,我找到的最简单的解决方案是使用设备农场,例如三星的设备农场:https://developer.samsung.com/remotetestlab/galaxy/rtlDeviceList.action#444。它是免费使用的,您可以像在模拟器中一样部署您的应用程序(右键单击 ->测试 ->远程调试桥接 ->按照说明操作)。由于这些是真实设备,因此速度可能比您个人电脑上的模拟器还要快。

0

我曾经遇到过同样的问题,所以我会发表一个答案,希望有人在未来能够从中受益。我可以在我的虚拟机中运行Android Studio,但是当我尝试启动模拟器时,由于“您的CPU不支持所需的功能(VT-x或SVM)”,我无法下载映像。

虽然我没有成功运行虚拟设备,但我通过使用BlueStacks解决了这个问题。您可以在虚拟机上安装BlueStacks。 BlueStacks(目前)运行Android 7.1.1,SDK 25。在BlueStacks中,转到设置/首选项,并按照this一组说明启用Android调试器桥接(adb)。然后,您应该能够从Android Studio内部在BlueStacks上运行您的应用程序。Logcat可以查看来自BlueStacks的任何日志语句。

另一种方法(不启用调试器桥接)是找到您的应用程序的.apk文件,然后使用BlueStacks APK安装程序打开该文件。Logcat仍然可以看到跟踪信息。

在虚拟机上运行速度较慢。您还需要在XML文件中设置android:testOnly="false"


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