2

私はこれに4時間苦労してきましたが、今はぐるぐる回っています。プロジェクトで Akavache を実行しようとしています。このプロジェクトは、すぐに使用できる Xamarin Forms (Portable) タイプです。次に、Nuget を使用して Akavache 4.1.2 を追加しました (これにより、Akavache Core と SqlLite3、ReactiveUI と Splat も追加されました)。次に、nuget パッケージの依存関係が間違っているため、Splat を更新しました (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 

Xamarin 4.1.0 で VS 2015 コミュニティを実行している PS

4

1 に答える 1

5

Akavache のドキュメントには明示的に記載されていませんが、通常は PCL だけでなく、プラットフォーム固有のプロジェクトにも NuGet パッケージをインストールする必要があります。

これは主に、必要なプラットフォーム固有の実装によるものです。そのため、同じ DLL をインストールしているにもかかわらず、別の実際の DLL (特にそのプラットフォーム用) が追加されます。

場合によっては、プラットフォーム固有のプロジェクトである種の初期化呼び出しを行う必要がありますが、ここではそうではないようです。

于 2016-06-17T06:36:16.607 に答える