Я столкнулся с проблемой SQLite в проекте xamarin форм. Однако SQLiteConnection
Я пытаюсь создать экземпляр на платформе Android, получая исключение.
Библиотеки, использующие в проекте android & iOS
- SQLite.Net-PCL 3.1.1
- SQLite.Net.Core-PCL 3.1.1
целевые версии файла манифеста
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="27" />
Файл AndroidSQLite.cs
using SQLite;
using SQLite.Net;
using System.IO;
namespace XamarinTestList.Droid.Implementations
{
public class AndroidSQLite : ISQLite
{
public SQLiteConnection GetConnection()
{
string documentPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
var path = Path.Combine(documentPath, DatabaseHelper.DbFileName); //DbFileName="Contacts.db"
var plat = new SQLite.Net.Platform.XamarinAndroid.SQLitePlatformAndroid();
string dpPath = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "user.db3");
var conn= new SQLiteConnection(plat, dpPath);
return conn;
}
}
}
Получение исключения на
var conn= new SQLiteConnection(plat, dpPath);
Я установил вышеупомянутые библиотеки на уровне решения, но в общем проекте нет возможности установить пакеты Nuget. Снимок экрана общего проекта
После этой статьи выучите SQLite с помощью xamarin.
xamarin forms-mvvm-sqlite-sample .
Полное исключение ниже
{System.DllNotFoundException: /system/lib/libsqlite.so at (обертка
удалось к родной)
SQLite.Net.Platform.XamarinAndroid.SQLiteApiAndroidInternal.sqlite3_open_v2 (байт [], IntPtr &, Int, IntPtr)
на SQLite.Net.Platform.XamarinAndroid.SQLiteApiAndroid.Open
(Имя файла System.Byte [], SQLite.Net.Interop.IDbHandle & db,
System.Int32 flags, System.IntPtr zvfs) [0x00000] в
<8dbf6ff85082469fb9d4dfaa9eae6b69>: 0 в
SQLite.Net.SQLiteConnection..ctor (SQLite.Net.Interop.ISQLitePlatform
sqlitePlatform, System.String databasePath,
SQLite.Net.Interop.SQLiteOpenFlags openFlags, System.Boolean
storeDateTimeAsTicks, сериализатор SQLite.Net.IBlobSerializer,
System.Collections.Generic.IDictionary 2[TKey,TValue] tableMappings,
System.Collections.Generic.IDictionary
2 [TKey, TValue]
extraTypeMappings, преобразователь SQLite.Net.IContractResolver) [0x000a2] в
<8f2bb39aeff94a30a8628064be9c7efe>: 0 в
SQLite.Net.SQLiteConnection..ctor (SQLite.Net.Interop.ISQLitePlatform
sqlitePlatform, System.String databasePath, System.Boolean
storeDateTimeAsTicks, сериализатор SQLite.Net.IBlobSerializer,
System.Collections.Generic.IDictionary 2[TKey,TValue] tableMappings,
System.Collections.Generic.IDictionary
2 [TKey, TValue]
extraTypeMappings, преобразователь SQLite.Net.IContractResolver) [0x00000] в
<8f2bb39aeff94a30a8628064be9c7efe>: 0