19

我在 Visual Studio 2015 中创建了一个空白的 Cordova 应用程序,并开始使用 Visual Studio 安卓模拟器进行调试(首先使用棒棒糖,然后使用 Kitkat)。XDE 启动并显示屏幕OS is starting...。它会保持这种状态很长一段时间,直到它显示

The emulator is unable to connect to the device operating system; The device did not response to the connect request. Some functionalities might be disabled'

关闭对话框后,它会永远留在那里,直到我杀死模拟器。杀死模拟器会触发 Visual Studio 的错误。

Could not start emulated device 'VS Emulator Lollipop Phone'.

当我打开 hyper-v 时,我在列表中看到 vm 并显示为正在运行。当我连接时,我看到控制台屏幕如下

屏幕

4

10 回答 10

29

我知道这个问题已经存在了一段时间,但我刚刚为可能仍然遇到这个问题的人找到了一个新的解决方案......

对于 API v 21 和 22,我遇到了同样的问题(卡在“操作系统正在启动”上)。API v23 映像将启动,但无法调试 - 应用程序一启动就会崩溃。

以下解决了该问题:

  • 关闭模拟器
  • 打开 Hyper-V 管理器
  • 转到 Android Image 的设置
  • 展开“处理器”配置节点
  • 转到“兼容性”节点
  • 选中“迁移到具有不同处理器版本的物理计算机”选项

显然,它与较新的处理器架构与 Android 图像不兼容或类似的东西有关 - 并不在意,只要它有效 :)

于 2015-12-17T07:44:25.393 回答
20

我遇到了同样的问题。正如其他答案中所建议的那样,我确实尝试通过删除 xdesku.xml 中的 GuestDisplayProvider = "VsEmulator.OpenGLGuestDisplay" 来禁用 OpenGL。

起初,虚拟机会启动(您可以从 Hyper-V 管理器连接到它),但模拟器窗口本身不会连接到机器(卡在“操作系统正在启动”,然后在使用以下消息:“模拟器无法连接到设备操作系统:无法自动检测来宾系统 IP 地址。某些功能可能被禁用。”)

这个答案https://stackoverflow.com/a/31698124/1010492和一个https://stackoverflow.com/a/14402740/1010492帮助我解决了连接问题,并且我能够让虚拟机显示在模拟器窗口。

但是,在我放回“VsEmulator.OpenGLGuestDisplay”行并删除我的配置文件并重新启动多次之后,模拟器无法正常工作(缩放问题,没有主页、返回等按钮)。

总而言之,如果您在启用 Hyper-V 的计算机上遇到同样的问题,您可能需要尝试 --over conscious -- 以下步骤:

  1. 理想情况下,卸载任何其他虚拟化软件,例如 VMWare、Virtual Box 和 VPN 客户端,例如 Cisco VPN(如果您不能这样做,请在第 13 步保持警惕)
  2. 重启
  3. 在“Visual Studio Emulator for Android”对话框中,删除所有已安装的设备配置文件
  4. 删除所有 Hyper-V 虚拟交换机 - 转到 Hyper-V > 虚拟交换机管理器 > 删除所有虚拟交换机
  5. 运行 XdeCleanup.exe(通常在“C:\Program Files (x86)\Microsoft XDE\10.0.10240.0”中)
  6. 还要删除“控制面板 > 网络和 Internet > 网络连接”中留下的任何额外的虚拟网络适配器(按照前面的步骤操作后,您通常应该只剩下物理适配器)
  7. 确保在所有网络适配器上禁用网络共享(右键单击,属性,共享,取消勾选“允许其他网络用户通过此计算机的 Internet 连接进行连接”)
  8. 如果您删除了GuestDisplayProvider="VsEmulator.OpenGLGuestDisplay"xdesku.xml 中的行(通常在“C:\Program Files (x86)\Microsoft XDE\10.0.10240.0\SKUs\Android”中),现在是恢复的好时机。
  9. 重启
  10. 您可能想尝试修复模拟器:转到 Programs and Features > Microsoft Visual Studio Emulator for Android > Change 并点击“Repair”(尽管我不得不说这对我来说总是失败)
  11. 重启
  12. 打开适用于 Android 的 Visual Studio Emulator,安装并运行其中一个配置文件(例如:7'' KitKat (4.4) XHDPI Tablet -- 类似于 Asus Google Nexus 7)
  13. 它可能已经工作,但如果没有,您应该确保您的网络适配器设置正确。停止您的模拟器,然后转到控制面板 > 网络和 Internet > 网络连接,然后右键单击 vEthernet 适配器,然后单击属性并确保您在网络列表中只勾选了以下框(如来自其他虚拟化或网络的干扰中所述软件和驱动程序:Microsoft 网络客户端、QoS 数据包调度程序、Microsoft 网络文件和打印机共享、Microsoft LLDP 协议驱动程序、链路层拓扑发现映射器 I/O 驱动程序、链路层拓扑发现响应程序、Internet 协议版本 6(TCP /IPv6),互联网协议版本 4 (TCP/IPv4)
  14. 重启
  15. 尝试在“Visual Studio Emulator for Android”中再次启动模拟器
  16. 如果它仍然不起作用,请尝试删除并重新创建配置文件,并重新启动负载...

这里可能有一些多余的步骤,但我认为它涵盖了您应该尝试的所有内容(关键似乎是确保网络适配器设置正确)。如果我遗漏了一些东西,或者您认为某些步骤无用,请发表评论。

于 2015-08-05T08:02:38.297 回答
6

经过大量搜索后,我得到了这个工作。希望这可以帮助。我在MSDN Article for Android Emulator with Visual Studio 2015的评论中找到了它

如果您通过转到 Program Files(或 Program Files x86,如果您在 64 位计算机上)\ Microsoft XDE \ 10.0.0.0 \ SKUs \ Android \ xdesku.xml 并删除此行来禁用 OpenGL,则新图像可能会起作用: GuestDisplayProvider = "VsEmulator.OpenGLGuestDisplay"。但是,如果不打开 OpenGL,您将无法利用许多新功能

于 2015-04-10T11:37:46.150 回答
1
于 2016-05-06T15:46:06.787 回答
1

我发现我的问题与我的公司应用于所有 PC 的一些企业策略的 windows 防火墙有关。一旦我停止了 Windows 防火墙服务,它就可以正常工作了。

于 2016-05-29T16:39:57.457 回答
1

在我的系统上,再次启用禁用的 vEthernet(内部以太网端口 Windows Phone 模拟器内部交换机)后,它再次工作。我不必重新启动。

于 2016-03-16T23:13:46.243 回答
1

我也有这个问题,它不仅适用于安卓模拟器,而且适用于所有 Windows 手机模拟器。

这就是我为解决问题所做的

在此之后,我能够从“Visual Studio Emulators for Android”运行模拟器

于 2016-07-05T06:08:13.743 回答
0

在我的机器上,我可以启动模拟器,但在尝试部署和调试时出现 OpenGL 错误。我意识到我的问题是在安装 Docker 后开始的。一时兴起,我决定关闭 Docker 并禁用 vEthernet (DockerNAT) 网络连接。这解决了我的问题。现在,每当我需要使用 Andoird 模拟器时,我都必须关闭 Docker。然后,当我完成调试时,我启用/重新启动 Docker。

于 2016-10-28T15:34:35.853 回答
0

尽管 Gyum Fox 提供的洞察力提供了我尝试其他东西所需的线索,但我正在添加一个单独的答案......

[注意:上次我能够使用模拟器时(大约 3 周前),我禁用了无线功能,并且在我的开发笔记本电脑上使用了有线连接。我的交换机空间不足,因此重新启用了无线作为唯一的连接选项。这可能完全是巧合,但请继续阅读,我会让你们决定。]

在按照 Gyum 的步骤没有成功后,我决定关闭无线,然后尝试启动模拟器。

你不知道吗......它没有问题!8-}

一旦我运行了模拟器,我重新启用了无线,模拟器获得了连接。

我不是网络人,所以我什至不会试图理解。这是一个小皮塔饼,但是嘿......如果它有效!;-}

于 2015-09-20T00:32:21.423 回答
0

我遇到此问题的原因之一是我没有在默认位置安装 Android SDK。所以我必须遵循这些说明才能调试我的应用程序:https ://msdn.microsoft.com/en-us/library/mt228282.aspx#ADB

我必须创建文件夹“Android SDK Tools”并将带有值的键“Path”添加到我的 SDK,在我的情况下它是“E:\Android\Android_SDK”

于 2017-12-09T19:05:55.380 回答