我已经设置了一个带有PCL的Xamarin.Forms项目,一个Android项目和一个iOS项目。 在主项目上我安装了Parse NuGet:
然后我将Parse.dll和Parse.NetFx45.dll添加到PCL:
(我从https://www.parse.com/docs/downloads下载并从Xamarin SDK获取)
最后在Android项目上我添加了Parse.Android.dll,在iOS项目中我添加了Parse.iOS.dll 当我现在尝试在Android上运行它时,我将收到以下错误:
07-29 16:34:30.274 I/MonoDroid(12848): UNHANDLED EXCEPTION:
07-29 16:34:30.279 I/MonoDroid(12848): System.TypeInitializationException: An exception was thrown by the type initializer for Parse.ParseClient ---> System.NullReferenceException: Object reference not set to an instance of an object
07-29 16:34:30.279 I/MonoDroid(12848): at Parse.ParseClient..cctor () [0x0008e] in <filename unknown>:0
07-29 16:34:30.279 I/MonoDroid(12848): --- End of inner exception stack trace ---
07-29 16:34:30.279 I/MonoDroid(12848): at Begijn.App..ctor () [0x00008] in c:\Users\yenthe.vanginneken\Desktop\Begijn\Begijn\Forms_Example\App.cs:19
07-29 16:34:30.279 I/MonoDroid(12848): at Begijn.Droid.MainActivity.OnCreate (Android.OS.Bundle) [0x000dc] in c:\Users\yenthe.vanginneken\Desktop\Begijn\Begijn\Droid\MainActivity.cs:77
07-29 16:34:30.279 I/MonoDroid(12848): at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (intptr,intptr,intptr) [0x00011] in /Users/builder/data/lanes/1879/5f55a9ef/source/monodroid/src/Mono.Android/platforms/android-21/src/generated/Android.App.Activity.cs:2707
07-29 16:34:30.279 I/MonoDroid(12848): at (wrapper dynamic-method) object.a9794397-c74a-443b-b29b-77d845a6f0d6 (intptr,intptr,intptr) <IL 0x00017, 0x00043>
同样的问题也发生在iOS上。 那么,我错过了什么或我做错了什么? :■ 我也在App.cs中初始化了Parse。
答案 0 :(得分:2)
我有sample TodoParse app就是这样:
在PCL中,我创建了IParseStorage
interface
在每个平台项目中,都有一个实现它的ParseStorage
类
有关其工作原理的详细信息,请参阅DependencyService docs。
答案 1 :(得分:1)
Parse NuGet包版本1.5.3不包含任何PCL程序集,因此我怀疑这是问题所在。它包含以下程序集:
.NET 4.5 Parse程序集可能正在使用iOS和Android不支持的API。
您需要在PCL中创建一个界面/抽象,并在iOS和Android项目中实现。