在Visual Studio 2015中,Android的Visual Studio模拟器无法运行应用程序。

23
我创建了一个空的Xamarin Android项目,没有添加任何代码。当我调试这个项目时,调试没有问题,但是当我使用Visual Studio模拟器运行应用程序时,模拟器在运行,但不启动我的应用程序,部署失败,也不显示错误信息。
为什么会这样呢? 请帮帮我。

可能有很多原因导致这种情况发生,如果您有任何错误消息或警告,请在此处提供以便我们帮助您。 - Marzouk
部署失败,请直接返回翻译后的文本,不要显示警告 ... :| - m.h.bayan
我认为Visual Studio无法在模拟器中运行应用程序。 - m.h.bayan
你有Windows 8或更高版本吗?据我所知,它不支持在Windows 7下运行。 - Seb
10个回答

49

我也遇到了同样的问题。VS 2015可以启动VS模拟器,但不能部署应用程序。

我是这样解决这个问题的:

  1. 启动模拟器(在VS中按F5,然后使用构建/取消菜单取消部署)
  2. 点击位于模拟器右侧工具栏中的chevron图标(»)
  3. 选择网络选项卡
  4. 找到首选网络IP地址
  5. 回到VS,在工具栏上单击打开ADB命令提示符按钮
  6. 键入adb connect [模拟器ip地址]
  7. 再次在VS中按F5

看起来像是VS的一个bug。


正是我所需要的! - Chris Swain
1
花了一整天的时间尝试弄清楚这个问题。您的解决方案解决了它。 - jdehlin
1
谢谢回答。对我有用! - Kenci
1
它对我也起作用了!干得好!但需要在每次部署中都这样做。 - Jsw
4
我也找不到 Chevron 图标。 - Hareen Laks
谢谢!在新笔记本电脑上重新安装所有Xamarin相关的东西时遇到了这个问题。尽管在旧笔记本电脑上使用相同版本时它工作得很好。我仍在寻找根本原因和永久解决方案。在VS 2017 15.8.8下仍然有效。 - TaiT's

13

我遇到了相同的问题。事实证明,根本原因是VS模拟器找不到adb.exe。

发生这种情况时,除非按照CSharpRocks给出的步骤进行手动连接,否则它不会连接到模拟器。模拟器也不会在"adb设备"下列出。

对于我来说,解决方法是重新安装Android SDK,使用基于Windows EXE的安装程序(而不是zip安装程序)。EXE安装程序在注册表中设置“HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Android SDK Tools”键、“Path”值,指向Android SDK根目录。

VS模拟器使用该注册表设置(或者Android Studio安装注册表设置)查找SDK,假设您没有使用Visual Studio自身安装Android SDK。有了这个,它应该能够找到adb.exe并工作。


1
这是微软建议的相同方法(链接在此),它对我有效并永久解决了问题。 - Jsw

8

这是对我有效的答案。很棒的努力。 - Jools

4

我遇到了非常类似的问题。我找到了两种不同的解决方法,但还没有找到完整的解决方案。

在部署应用之前启动模拟器

  1. 从开始菜单中启动 Visual Studio Emulator for Android 应用程序。

  2. 通过绿色箭头启动可用的模拟器

    Visual Studio Emulator for Android

  3. 再次尝试从 Visual Studio 启动您的应用程序,从下拉菜单中选择 VS Emulator N-inch... 模拟器

    Visual Studio Emulator List

对于我来说,由于某些原因,应用程序仍未在模拟器上“启动”,尽管它已经安装好了。所以我必须打开应用程序菜单并选择我的应用程序。此外,通常在我尝试打开应用程序的前几次,它都会崩溃,但最终会显示我的唯一默认标签,Welcome to Xamarin Forms!

Ad-Hoc 模式运行应用程序

  1. 在运行应用程序之前,将解决方案配置(位于绿色“运行”按钮旁边的顶部工具栏中)更改为 Ad-Hoc


但这两种方法的问题是,我仍然无法实际调试应用程序。我可以运行它,但我的断点被忽略了,我认为这将使找到错误变得困难,一旦我真正开始编写一个真正的应用程序。

我希望找到一个真正的解决方案后更新这个答案。


非常感谢 - 在尝试部署之前启动模拟器解决了我的问题... - James

3

我昨天遇到了同样的问题。这个问题可能是因为我长时间停止开发后又试图重新开始导致的。我更新了VS和所有东西,但仍然面临许多问题。

最终你需要重新开始

  1. 确保模拟器的SDK指向正确的位置(HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Android SDK Tools)
  2. 以管理员权限运行Visual Studio
  3. 进入Hyper-V管理器并删除所有虚拟交换机 - 让系统在需要时重新创建它们。它会正确地做到这一点。
  4. 删除所有现有的模拟器,并在Visual Studio中重新创建它们。我甚至发现一条评论说将它们命名为没有空格 - 不确定是否需要,但不会有坏处。

做完这些步骤之后,问题得到了解决。但我曾经快要重新安装干净的Windows 10。我认为很多事情和配置都变了,不再兼容。


0

我曾经遇到过同样的问题,但在我的情况下并不是注册表的问题。在进行发布构建后,我以发布模式将应用程序部署到模拟器设备中,这会将应用程序推送到设备上,然后有效地“断开连接”。这会在设备上留下一个应用程序版本,似乎会阻止进一步的调试或部署。

我通过启动模拟器,进入“设置 -> 应用程序”并手动卸载我的应用程序来解决了这个问题。然后下一个调试构建和部署就又可以正常工作了。

您也可以手动启动模拟器并选择“擦除设备”选项,使其重新开始。


0

尝试启用Hyper-V并使用来自Android的Visual Studio模拟器;在经过多次尝试和研究后,这对我很有效。


0
在Windows10上的VS2017中,我只需要关闭移动数据就可以让应用程序显示出来。(向下滑动或使用设置,然后点击移动数据并确认关闭)。
当我重新打开移动数据后,我就可以访问该应用程序了。在此之前,仿真器似乎运行正常,但无法运行该应用程序。
我不知道为什么这样可以解决问题,但我在这里发布,以防对某人有所帮助。
在故障排除过程中,我还查看了以下文章:

0

在 VS 2015 中安装 Apache 在这里
开发 Android 应用程序需要 Visual Studio 安装 Apache。
您也可以查看其他建议:
不显示, 故障排除


-1

我以前在使用Android SDK模拟器时遇到过这样的问题,现在我改用Genymotion模拟器,它更轻便、更快速,并且一旦启动就会被您的VS自动检测到。

您可以从这里下载免费版本:https://www.genymotion.com/

同时,您还可以下载任何设备模拟器。


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