Xamarin 领域 PlatformNotSupportedException
Posted
技术标签:
【中文标题】Xamarin 领域 PlatformNotSupportedException【英文标题】:Xamarin Realm PlatformNotSupportedException 【发布时间】:2017-02-10 11:49:27 【问题描述】:我已通过 Nuget 将 Realm 安装到我的 Xamarin PCL 和我的 android 项目中,当我尝试运行任何 Realm 代码行时,我收到以下异常:
System.PlatformNotSupportedException: The PCL build of Realm is being linked which probably means you need to use NuGet or otherwise link a platform-specific Realm.dll to your main application.
我研究了各种 Realm 论坛,典型的建议是确保每个设备项目也安装了 Realm 包,我已经有了,所以这不是解决方案。有关如何解决此问题的任何想法?
【问题讨论】:
【参考方案1】:为每个平台特定项目打开您的 csproj 文件。确保其中引用的 dll 来自 NuGet 包中的平台特定文件夹。
如果您看到此错误,您很可能会看到它来自 portable-net45+sl5+wp8+wpa81+win8+monoandroid+Xamarin.ios10+Xamarin.Mac
。
您希望该引用指向 MonoAndroid44、Xamarin.iOS10、Xamarin.Mac 等。不是便携式的。修复此问题,您将修复您的异常。
【讨论】:
我在 Realm 版本的 Android 项目中有这个:<HintPath>..\..\packages\Realm.0.82.1\lib\MonoAndroid44\Realm.dll</HintPath>
我已将此标记为答案,虽然它并不完全正确,但它确实直接引导我找到了解决方案:导致错误的不是 Realm DLL 错误,而是 Remotion .Linq DLL。我的 Android 项目文件包含以下内容:<Reference Include="Remotion.Linq, Version=2.1.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b, processorArchitecture=MSIL"> <HintPath>..\..\packages\Remotion.Linq.2.1.1\lib\portable-net45+win+wpa81+wp80\Remotion.Linq.dll</HintPath> <Private>True</Private> </Reference>
,“portable-net45...”位应为“MonoAndroid44”以上是关于Xamarin 领域 PlatformNotSupportedException的主要内容,如果未能解决你的问题,请参考以下文章