Visual Studio android模拟器无法完全启动

时间:2015-04-09 19:44:30

标签: android android-emulator visual-studio-2015 vs-android

我在visual studio 2015中创建了一个空白的cordova应用程序,并开始使用visual studio android模拟器进行调试(首先使用棒棒糖,然后使用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并显示为正在运行。当我连接时,我看到控制台屏幕如下

screen

9 个答案:

答案 0 :(得分:30)

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

对于API v 21& S,我遇到了同样的问题(坚持"操作系统正在启动") 22. API v23图像将启动,但无法调试 - 应用程序一启动就会崩溃。

以下解决了这个问题:

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

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

答案 1 :(得分:20)

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

首先,虚拟机将启动(您可以从Hyper-V管理器连接到它),但仿真器窗口本身不会连接到计算机(卡在“操作系统正在启动”,然后在looooong之后失败)使用以下消息:“模拟器无法连接到设备操作系统:无法自动检测客户机系统IP地址。某些功能可能已禁用。”)

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

但是,模拟器无法正常工作(缩放问题,没有Home,Back等按钮),直到我放回“VsEmulator.OpenGLGuestDisplay”行并删除我的配置文件并重启多次后。

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

  
      
  1. 理想情况下,卸载任何其他虚拟化软件,如VMWare,Virtual Box和VPN客户端,如Cisco VPN(如果你不能   要做到这一点,请在步骤13)保持警惕
  2.   
  3. 重新启动
  4.   
  5. 在“Visual Studio Emulator for Android”对话框中,删除所有已安装的设备配置文件
  6.   
  7. 删除所有Hyper-V虚拟交换机 - 转到Hyper-V&gt; <虚拟交换机管理器>删除所有虚拟交换机
  8.   
  9. 运行XdeCleanup.exe(通常位于“C:\ Program Files(x86)\ Microsoft XDE \ 10.0.10240.0”)
  10.   
  11. 同时删除“控制面板&gt;网络和互联网&gt;网络连接”中留下的任何额外虚拟网络适配器(以下   在前面的步骤中,通常应该只留下物理   适配器)
  12.   
  13. 确保在所有网络适配器上禁用网络共享(右键单击,属性,共享,取消选中“允许其他网络用户”   通过这台计算机的互联网连接“)
  14.   
  15. 如果您删除了xdesku.xml中的行GuestDisplayProvider="VsEmulator.OpenGLGuestDisplay"   (通常在“C:\ Program Files(x86)\ Microsoft中   XDE \ 10.0.10240.0 \ SKUs \ Android“),现在是一个值得回来的好时机。
  16.   
  17. 重新启动
  18.   
  19. 您可能想尝试修复模拟器:转到程序和功能&gt;适用于Android的Microsoft Visual Studio模拟器&gt;改变和   点击“修复”(虽然我不得不说这对我来说总是失败)
  20.   
  21. 重新启动
  22.   
  23. 打开适用于Android的Visual Studio模拟器,然后安装然后运行其中一个配置文件(例如:7''KitKat(4.4)XHDPI Tablet - 类似于   华硕谷歌Nexus 7)
  24.   
  25. 它可能已经有效,但如果没有,则应确保正确设置了网络适配器。停止你的模拟器,然后转到   控制面板&gt;网络和互联网&gt;网络连接,对   单击vEthernet适配器,然后单击属性并确保仅限   在网络列表中勾选以下框(如上所述)   在Interference from other virtualization or networking software and drivers中:Microsoft网络客户端,QoS数据包计划程序,文件   Microsoft网络和Microsoft LLDP协议的打印机共享   驱动程序,链路层拓扑发现映射器I / O驱动程序,链路层   拓扑发现响应程序,Internet协议版本6(TCP / IPv6),   Internet协议版本4(TCP / IPv4)
  26.   
  27. 重新启动
  28.   
  29. 尝试在“Visual Studio Emulator for Android”
  30. 中再次启动模拟器   
  31. 如果仍然无效,请尝试删除并重新创建配置文件,并重新启动...
  32.   

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

答案 2 :(得分:6)

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

的评论中找到了它

如果您通过转到Program Files(如果您使用的是64位计算机上的Program Files x86)或Microsoft XDE \ 10.0.0.0 \ SKUs \ Android \ xdesku.xml并删除,则禁用OpenGL可能会有效这一行:GuestDisplayProvider =“VsEmulator.OpenGLGuestDisplay”。但是,如果没有打开OpenGL,您将无法利用许多新功能

答案 3 :(得分:1)

在我的系统上,我再次启用已禁用的vEthernet(内部以太网端口Windows Phone仿真器内部交换机)后再次运行。 我没有必要重新启动。

答案 4 :(得分:1)

我经历了@Gyum Fox回答的步骤,对我来说仍然没有快乐。

虽然用于Android的Visual Studio模拟器创建了第一个模拟器实例,但还创建了多个虚拟网络交换机。对于笔记本电脑,通常会创建三个vEthernet实例;一个用于有线LAN,一个用于Wi-Fi,另一个用于客户端到主机连接。

就我而言,有线局域网的vEthernet已成功创建,然后 Visual Studio Emulator for Android 进程将挂起。这可以从 Hyper-V Manager Virtual Switch Manager 操作中观察到。

使用虚拟交换机管理器我通过以下步骤成功创建了缺少的Wi-Fi虚拟交换机。好吧,最终它奏效了。请继续阅读。

  1. 虚拟交换机列表下,选择新建虚拟网络交换机
  2. 您要创建哪种类型的虚拟交换机下,选择外部
  3. 外部网络下拉列表中,选择Wi-Fi适配器。
  4. 点击创建虚拟交换机按钮。
  5. 更改名称以匹配Wi-Fi适配器的名称。
  6. 点击应用按钮。
  7. 在我的情况下,点击应用后,出现一条失败消息,表明Wi-Fi适配器已被桥接。嗯。

    我启动了查看网络连接控制面板小程序,但Wi-Fi适配器未显示已桥接。 (当存在网桥时,状态列会附加单词桥接。)我怀疑在注册表中某处隐藏着一些尘土飞扬的数字位。

    这就是为我解决问题的原因。

    1. 右键单击Wi-Fi设备。
    2. 选择添加到网桥
    3. 再次右键单击Wi-Fi设备。
    4. 选择从网桥中删除
    5. 现在,返回到为Wi-Fi网络创建虚拟交换机的步骤。这些步骤现在应该成功完成。

      现在,您可以返回创建所需的Android模拟器。

      最后一个想法......如果您没有看到任何虚拟交换机被创建,我怀疑这可能意味着有线局域网可能会让您感到满身灰尘。在这种情况下,我会尝试在有线LAN适配器上添加并删除桥接技巧,看看是否有适合您的。

      而且,现在我认为只需在网络适配器上执行添加和删除桥接技巧而无需创建虚拟交换机就足够了。对我来说,虚拟交换机的创建证明问题已得到纠正。 YMMV; - )

答案 5 :(得分:1)

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

答案 6 :(得分:1)

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

这就是我解决问题的方法

在此之后,我能够从“Visual Studio Emulators for Android”

运行模拟器

答案 7 :(得分:0)

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

答案 8 :(得分:0)

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

我必须创建文件夹&#34; Android SDK Tools&#34;并添加Key&#34; Path&#34;与我的SDK的价值,在我的情况下它是&#34; E:\ Android \ Android_SDK&#34;