无法使用 PCL Xamarin Forms 应用程序让 Akavache 工作

Cannot get Akavache to work using PCL Xamarin Forms app

我已经为此苦苦挣扎了 4 个小时,现在我在原地转圈。我正试图让 Akavache 为我的项目 运行。该项目是开箱即用的 Xamarin Forms (Portable) 类型。然后使用 Nuget 我添加了 Akavache 4.1.2(它还添加了 Akavache Core 和 SqlLite3 以及 ReactiveUI 和 Splat)。然后我更新了 Splat,因为 nuget 包中的依赖项是错误的(是 1.3.3 但应该是 1.6.0)。但是我仍然在启动这个应用程序时遇到错误(现在定位 iOS)添加第一行你应该定位这个(BlobCache.ApplicationName = "MyApp"):

System.TypeInitializationException: The type initializer for 'Akavache.BlobCache' threw an exception. ---> System.Exception: Failed to initialize Akavache properly. Do you have a reference to Akavache.dll?
at Akavache.Sqlite3.Registrations.Register (IMutableDependencyResolver resolver) [0x0001f] in <filename unknown>:0 
at Akavache.DependencyResolverMixin.InitializeAkavache (IMutableDependencyResolver This) [0x000c0] in <filename unknown>:0 
at Akavache.BlobCache.<.cctor>b__0 () [0x0000d] in <filename unknown>:0 
at Splat.Locator.RegisterResolverCallbackChanged (System.Action callback) [0x00039] in <filename unknown>:0 
at Akavache.BlobCache..cctor () [0x00018] in <filename unknown>:0 

PS 运行 VS 2015 社区与 Xamarin 4.1.0

虽然 Akavache 的文档中没有明确提及,但通常不仅需要在 PCL 上安装 NuGet 包,还需要在特定于平台的项目上安装 NuGet 包。

这主要是由于需要特定于平台的实现。因此,尽管您正在安装同一个 DLL,但添加了另一个实际的 DLL - 专门针对该平台。

在某些情况下,需要在特定于平台的项目中进行某种初始化调用,尽管此处似乎并非如此。