无法在 Xamarin Forms 中启动 UWP 项目

Posted

技术标签:

【中文标题】无法在 Xamarin Forms 中启动 UWP 项目【英文标题】:Couldn't Start UWP project in Xamrin Forms 【发布时间】:2016-12-02 05:57:53 【问题描述】:

我正在使用 Visual Studio 2015 启动我的第一个 Xamarin Forms 应用程序。默认模板提供了 6 个项目。 (androidios、PCL、UWP、8.1、windows手机)。

所有项目都能正常工作,包括 Android、8.1、Windows Phone Emulator。

但是当我尝试部署 UWP 项目时,在它调用 PCL 内的 MainPage 的第一条语句处中断(异常)。这发生在本地机器和模拟器中。 (调试模式,所有 CPU)。

我已经将 xamarin 表单更新到最新的稳定版本,更新了 Visual Studio,但我无法解决问题。

例外:

“System.TypeLoadException”类型的异常发生在 Xamarin.Forms.Platform.UAP.dll 但未在用户代码中处理

附加信息:找不到 Windows 运行时类型 'Windows.UI.ViewManagement.StatusBar'。

请帮忙

【问题讨论】:

【参考方案1】:

Windows.UI.ViewManagement.StatusBar 是一种仅在 Windows Mobile 扩展 SDK 中可用的类型,您必须引用此 SDK 才能使用它。

在解决方案资源管理器中右键单击您的 UWP 项目,选择 Add -> Reference,然后在通用 Windows 下选择扩展并找到 Windows Mobile Extensions for the UWP。检查与您的应用的目标 Windows 10 构建版本匹配的那个。

您还需要使用IsTypePresent API,它将在运行时检查该类型是否在当前设备上可用。这一点很重要,因为StatusBar 在 Windows 10 的任何其他版本上都不存在,而不是在移动版上:

if(ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar") )

   //your code

【讨论】:

【参考方案2】:

看起来像 xamarin UWP 概念中的问题,你更新了 Xamain.Forms 吗? 转到工具-> NuGet 包管理器-> 管理解决方案包-> Microsoft.NETCore.Universal Windows 平台-> 更新最新版本。

全部更新后,还是同样的问题,请查看这里 https://forums.xamarin.com/discussion/64731/how-to-solve-unknown-type-in-uwp-app-windows-ui-viewmanagement-statusbar

【讨论】:

是的,我已经更新了,但还是不行。我将阅读链接并尝试弄清楚。谢谢【参考方案3】:

如果这些都不起作用,请尝试将您的 Windows SDK 更新到最新版本。它对我有用。我还添加了对Windows Mobile Extensions for the UWP 的引用。

编辑:

我也尝试过,有时当您更新 Visual Studio 时,它会再次失败。我必须在我的 UWP 项目中手动更改 de SDK 版本,转到属性 > 应用程序 > 目标版本 > 选择最新版本

【讨论】:

以上是关于无法在 Xamarin Forms 中启动 UWP 项目的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Forms UWP - 无法调试共享代码

无法在发布模式下为 UWP 构建 Xamarin.Forms 应用

无法在 UWP 中设置 SQLite 对象 - Xamarin Forms

包“apppxbundle”需要很长时间来处理。无法将更新推送到 Windows 商店 [UWP] [Xamarin.Forms]

Breeze# 用于 Xamarin.Forms(UWP、Droid 和 iOS)?

Xamarin.UWP应用程序无法启动,因为无法加载“Microsoft.Graphics.Canvas.UI.Xaml.CanvasImageSource”