Xamarin.Forms Visual Studio 2017项目无法部署

6
我刚开始学习Xamarin,使用Visual Studio 2017中的Xamarin.Forms模板创建了一个简单的移动端解决方案。这个过程创建了四个项目:Xamarin PCL、Xamarin Android、Xamarin.iOS和Xamarin.UWP。在未对生成的解决方案进行任何修改的情况下,我试图运行它。
第一个问题是,当我将UWP设置为起始项目时,Windows模拟器会显示并完美地运行应用程序。但是当我尝试在Android上做同样的事情时,根据我所做的环境更改,会出现不同的错误。最终,使用Visual Studio Android模拟器,手机UI界面出现了,但是我的应用程序没有出现。在后台中,我可以看到Visual Studio成功完成构建过程而没有任何错误,但部署进程却一直卡住。我让部署工作过夜,但早上仍然卡住。以下是我的开发环境:
- Intel Core i7处理器 - 在BIOS中启用虚拟化 - Windows 10教育版 - 32GB RAM - 在Windows中禁用Hyper-V - 在命令窗口中执行bcdedit /set hypervisorlaunchtype off并重新启动。
我尝试以不同的组合方式设置上述环境,但似乎都无法使应用程序正常工作。当我使用来自Android SDK的模拟器时,构建过程会报错。唯一能够构建的模拟器是Visual Studio模拟器,但是部署却卡住了。
我还遇到了第二个问题,我已经安装了版本24和25的Android SDK,但在模拟器下拉列表中只能看到版本23的模拟器。我检查了Visual Studio和Android SDK管理器中的安装路径,它们都指向同一个安装文件夹。我需要做些什么才能使用版本24和25的模拟器呢?
重申一下,运行之前我没有对生成的解决方案进行任何更改。我已经花了三天时间,但无法使它正常工作,请帮忙解决。

检查您的Droid项目的项目选项。它支持API级别。确保支持24和25,否则您将无法在该模拟器(或设备)上运行它。 - Gerald Versluis
3
区别于模拟器的Windows模拟器和Visual Studio Android模拟器都需要Hyper-V支持,因此您不希望禁用它。您可能看到建议关闭Hyper-V以启用基于VirtualBox的模拟器,但Microsoft使用Hyper-V。因此,我建议您启用Hyper-V并确保可以运行它们。对于UWP应用程序,默认情况下会在模拟器中运行,这就是在另一个窗口中显示Windows桌面。而模拟器是为Windows手机设计的。哦,并且Microsoft还没有API 24或25的模拟器镜像,但23对大多数场景来说已经足够了。 - Ben Reierson
@BenReierson 感谢提供的信息。我已经尝试过开启和关闭Hyper-V。另一个问题是:在我的Android SDK管理器中,额外组件中的Entel x86模拟器加速器(HAXM安装程序)版本6.1.1被标记为“与Windows不兼容”。我在许多帖子中看到这也可能是问题所在,但我不知道如何安装HAXM。我想我在原帖中忘了提到这一点。 - Babu Mannavalappil
你可能需要检查ConfigurationManager,并确保Android项目的部署选项已被勾选。当我尝试在VS2017中构建和部署一个工作解决方案(来自VS2015)时,这种情况也发生在我身上。 - Frankie
@Frankie:谢谢你,Frankie。我检查了Android项目的部署选项,已经打上勾了,但问题仍然存在。 - Babu Mannavalappil
2个回答

7

我刚刚在Win10 15063.138上安装了Visual Studio 2017,发现像你一样,Xamarin项目无法部署到Android。以下是我运行的方式:

  • 在Android SDK Manager中更新所有内容。
  • 从MS安装了新的、改进的Android Emulator:https://www.visualstudio.com/vs/msft-android-emulator/
  • 使用该工具下载/安装API级别为23(6.0 Marshmallow)的模拟器
  • 使用同一工具启动该模拟器(您将在Hyper-V管理器中看到它正在运行)
  • 在VS中选择相同的模拟器进行部署/调试(VS附带的模拟器速度极慢)
  • 在VS中选择Android项目进行启动,并在构建配置管理器中验证构建和部署到Android。

注意: MS似乎没有任何高于API级别23的模拟器,因此您的Android项目的编译和目标设置可以是最新的,但最低目标必须是6.0(API 23)。


谢谢您的建议。我逐点按照您的建议进行了操作。一度以为成功了,但是这种感觉很短暂。在构建和部署过程中,输出窗口出现了大量的消息,同时模拟器显示着安卓手机的主屏幕。当部署完成后,一个白屏(显然是我的应用程序)只出现了不到一秒钟,我甚至没看到测试信息。调试突然停止,没有任何错误消息。有什么想法吗? - Babu Mannavalappil

5

我在过去的几天里一直苦恼着,最终成功将我的Xamarin.Forms Android App显示在模拟器上。感谢所有成员的建议。Ryan的建议非常有帮助(我给他+1,谢谢Ryan),但没有解决我的问题。我进一步搜索并找到了一个建议,要求更改以下设置,这最终解决了我的问题。因此,如果其他人也像我一样遇到困难,请执行以下操作(除了清理和更新所有软件包外):

  • 打开模拟器的Hyper-V vm设置(在VM关闭时)。
  • 展开左侧的处理器节点,单击“兼容性”。
  • 现在,在右侧的“迁移到具有不同处理器版本的物理计算机”上打勾。
  • 使用Visual Studio Emulator工具启动模拟器。
  • 现在,在已经运行的相同模拟器中使用VS调试您的Android项目。
  • 经过一段时间的延迟后,您的应用程序将出现在模拟器中。耶!

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