添加Akavache静态链接器类或Initializer错误



我目前正在使用Visual Studio Mac 2019来构建我的iOs Xamarin Forms应用程序。

我的应用程序Akavache存储持久性数据,特别是我使用其BlobCache的凭据。安全存储器,但遗憾的是,数据无法持久存在。

我发现我应该添加以下任一项:1.链接器类

using System;
using Akavache.Sqlite3;
namespace NameSpace.iOS
{
[Preserve]
public static class LinkerPreserve
{
static LinkerPreserve()
{
var persistentName = typeof(SQLitePersistentBlobCache).FullName;
var encryptedName = typeof(SQLiteEncryptedBlobCache).FullName;
}
}
public class PreserveAttribute : Attribute
{
}
}

2.初始化程序

Akavache.Registrations.Start("FollowTheDrop");

Akavache:保存的价值在iOS应用程序重新启动后不可用

但每次我在上面添加解决方案时,在构建期间都会出现以下错误

MTOUCH:错误MT2101:无法解析引用"System.Int32"SQLitePCL.raw::sqlite3_bind_blob(SQLitePCL.sqlite3_stmt,System.Int32,System.Byte[](',从方法"System.Void"中引用Akavache.Sqlite3.BulkInsertSqliteOperation/<gt;c_DisplayClass7_0::b_0(('在'SQLitePCLRaw.core中,版本=1.1.13.388,文化=中性,PublicKeyToken=1488e028ca7ab535'。

我是否遗漏了导致此错误的内容?

它是通过更新下面的相互依赖的Nuget包来解决的:

  1. Akavache 9.0.1
  2. 飞溅14.3.1
  3. 连射2.4.47

最后,当添加链接器静态类时,请考虑添加一个Preserve属性,如下所示:

[Preserve]
public static class LinkerPreserve
{
static LinkerPreserve()
{
var persistentName = typeof(SQLitePersistentBlobCache).FullName;
var encryptedName = typeof(SQLiteEncryptedBlobCache).FullName;
}
}
public class PreserveAttribute : Attribute
{
}

相关内容

最新更新