Xamarin.Forms Visual Studio 2017 项目未部署

Posted

技术标签:

【中文标题】Xamarin.Forms Visual Studio 2017 项目未部署【英文标题】:Xamarin.Forms Visual Studio 2017 project does not deploy 【发布时间】:2017-09-06 17:44:03 【问题描述】:

我是 Xamarin 的新手。我用过 Xamarin。用于在 Visual Studio 2017 中创建示例移动解决方案的表单模板。该过程创建了四个项目 Xamarin PCL、Xamarin android、Xamarin.ios 和 Xamarin.UWP。在不对生成的解决方案进行任何修改的情况下,我正在尝试运行它。

第一个问题是,当我将 UWP 设置为启动项目时,Windows 模拟器会显示并完美运行应用程序。但是当我尝试对 Android 做同样的事情时,根据我所做的环境更改,我会在不同的时间得到不同的错误。最后,使用visual studio android 模拟器,Phone UI 出现了,但我的应用程序没有出现。在后台,我可以看到 Visual Studio 成功完成了构建过程,没有任何错误,但部署过程只是挂起。我让部署在一夜之间运行,但仍然在早上运行。这是我的环境。

英特尔酷睿 i7 处理器 在 BIOS 中启用虚拟化 Windows 10 教育版 32GB 内存 Hyper-V 在 Windows 中被禁用 在命令窗口中执行bcdedit /set hypervisorlaunchtype off并重新启动。

我尝试以不同的组合设置上述环境,但它们似乎都无法使应用程序正常工作。当我使用来自 android SDK 的 android 模拟器时,构建过程会引发错误。甚至可以构建的唯一模拟器是 Visual Studio 模拟器。但是部署挂起。

我遇到的第二个问题是,我已经安装了版本 24 和 25 的 android SDK。但是在模拟器下拉列表中,我只能看到 23 的模拟器。我在 Visual Studio 和 android SDK 管理器中检查了安装路径,并且它们都指向同一个安装文件夹。我需要什么才能使版本 24 和 25 的模拟器可用?

我再说一遍,在运行它之前,我没有对 Visual Studio 中生成的解决方案进行任何更改。在过去的三天里,我一直在使用它,但无法使其正常工作。请帮忙。

【问题讨论】:

检查您的 Droid 项目的项目选项。它具有受支持的 API 级别。确保支持 24 和 25,否则您将无法在该模拟器(或相关设备)上运行它。 windows 模拟器(相对于模拟器)和visual studio android 模拟器实际上都需要hyper-v,所以你不想禁用它。您可能已经看到关闭 hyper-v 的建议的原因是启用基于 virtualbox 的模拟器,但 Microsoft 使用的是 hyper-v。所以我会启用它并确保你可以运行它们。对于 UWP 应用程序,默认将在模拟器中运行,即在另一个窗口中的 Windows 桌面。模拟器适用于windows phone。哦,微软还没有 api 24 或 25 模拟器图像,但 23 对大多数事情都很好。 @BenReierson 感谢您提供的信息。我已经尝试过开启和关闭 Hyper-V。这里的另一点是:在我的 Android SDK Manager 下的 Extras 中,Entel x86 Emulator Aceelerator (HAXM Installer) ver 6.1.1 被标记为“与 Windows 不兼容。我在很多帖子中读到这也可能是问题。但我不知道如何安装 HAXM。我想我忘了在我原来的帖子中提到这一点。 您可能需要检查 ConfigurationManager,并确保选中 Android 项目的部署选项。当我尝试在 VS2017 中构建和部署一个有效的解决方案(来自 VS2015)时,它发生在我身上。 @Frankie:谢谢弗兰基。我检查了我的 Android 项目的部署选项,它已经被勾选了。问题依然存在。 【参考方案1】:

我刚刚安装了 Visual Studio 2017(在 Win10 15063.138 上),发现和你一样,Xamarin 项目不会部署到 Android。以下是我的跑步方式:

更新了 Android SDK 管理器中的所有内容。 从 MS 安装了新的改进的 Android 模拟器: 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)。

【讨论】:

感谢您的建议。我完全按照您的建议逐点进行。有那么一瞬间,我以为我明白了。但它是短暂的。在构建和部署过程中,调试过程从输出窗口中的大量消息开始,而模拟器一直显示安卓手机的主屏幕。部署完成后,白屏(显然是我的应用程序)出现了几分之一秒,我什至看不到测试消息。调试突然停止,没有任何错误消息。有什么想法吗?【参考方案2】:

在过去几天拉我的头发之后,我终于让我的 Xamarin.Forms Android 应用程序在模拟器上显示我的页面。感谢所有成员的建议。 Ryan 的建议很有帮助(我为他 +1,感谢 Ryan)但并没有解决我的问题。我进一步搜索并找到了一个建议,该建议要求更改以下设置,最终为我完成了它。所以,如果其他人像我一样被卡住,请执行以下操作(除了清理和更新所有包):

为您的模拟器打开 Hyper-V 虚拟机的设置(当虚拟机关闭时)。 展开左侧的处理器节点,点击“兼容性”。 现在勾选右侧的“迁移到具有不同处理器版本的物理计算机”。 在 Visual Studio Emulator 工具中启动您的模拟器。 现在,在 VS 中使用已经运行的同一个模拟器开始调试您的 android 项目。 延迟后(总会有延迟),您的应用程序将显示在模拟器上。耶!!

【讨论】:

以上是关于Xamarin.Forms Visual Studio 2017 项目未部署的主要内容,如果未能解决你的问题,请参考以下文章

如何更改“Xamarin.Forms Material Visual”禁用按钮的透明度?

如何使用 C++ 非托管库在 Visual Studio 2017 中为 Xamarin.Forms 设置项目?

Xamarin Forms不会在Visual Studio 2017中创建.csproj文件

在 Visual Studio 上运行 Xamarin Forms iOS 时出现 GetBuiltProjectOutputRecursive 错误

Visual Studio 2015 Professional上缺少Xamarin.Forms跨平台模板

如何使用 Visual Studio for Mac 在 Xamarin.Forms 中实现多目标?