【问题标题】:Azure Mobile Services - System.PlatformNotSupportedExceptionAzure 移动服务 - System.PlatformNotSupportedException
【发布时间】:2018-01-20 17:24:09
【问题描述】:

我正在使用 azure 开发一个 xamarin 表单应用程序,但是当我加载我的初始页面时,它就在线崩溃了:

public static MobileServiceClient MobileService =
               new MobileServiceClient(
               "https://myapp.azurewebsites.net");

例外:

System.PlatformNotSupportedException "空的 PCL 实现 Microsoft Azure 移动服务已加载。确保您已添加 nuget 包到您的每个平台项目。”

我该如何解决这个问题?

【问题讨论】:

  • 您是否将 nuget 包添加到 android、ios 和 uwp 应用程序(如果包含)?
  • @KenTucker 如果这就是你的意思,我在应用程序的所有部分都有 Microsoft.Azure.Mobile.Client。
  • 是的。 xamarin 表单应用支持哪些平台?
  • @KenTucker iOS 和 Android

标签: azure xamarin xamarin.forms


【解决方案1】:

这可能意味着 NuGet 包未在您的某个平台上正确安装。我建议使用Package Manager Console (Tools/NuGet Package Manager/Package Manager Console) 进行force-reinstall of all NuGet packages

Update-Package -reinstall

对解决方案中的所有项目执行此操作。完成后,关闭并重新打开 Visual Studio,打开您的解决方案并单击顶部菜单中的 Build 并执行 Clean Solution

现在依次查看您的每个平台项目,看看您是否有 Microsoft.Azure.Mobile.Client 参考:

如果不存在,请在给定项目中再次安装 Microsoft.Azure.Mobile.Client 包。

然后,您应该按照有关 Azure 移动服务的任何教程中的说明进行操作。即使您在 Xamarin.Forms 应用程序中使用共享项目策略,一旦平台项目安装了 Microsoft.Azure.Mobile.Client,它也应该按预期工作。

如果没有帮助,作为最后的手段,我建议尝试将所有 NuGet 包更新到其最新版本(右键单击解决方案,管理 NuGet 包以获取解决方案...)

【讨论】:

【解决方案2】:

确保在各自的 AppDelegate/MainActivity 中添加初始化代码

CurrentPlatform.Init();

在 iOS、Android 和 PCL 项目中,有对 Microsoft.Azure.Mobile.Client 包的引用。

Example

它在 TodoItemManager 类中实例化 MobileServiceClient。

【讨论】:

  • 我没有电脑
  • SCL?抛出异常的代码放在哪里?
  • 在我的问题中注明的行开始我的第一页时
  • Init 调用应该在 AppDelegate/MainActivity 中,而您应该在第一次调用中实例化 PCL/SCL 项目中的 MobileServiceClient。我已将官方 Xamarin.Forms 示例的链接添加到答案中
  • 是的,对不起,我在谈论启动时说错了,我在谈论我在哪里声明我的应用程序主页对不起,我应该更清楚的是,init 已经在应用程序委托和 mainactivity 中
猜你喜欢
  • 1970-01-01
  • 2016-07-07
  • 1970-01-01
  • 1970-01-01
  • 2014-02-17
  • 2017-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多