我正在尝试使用Visual Studio在Xamarin解决方案中实现SQLite。但是,我找不到实现SQLiteAsyncConnection的正确方法。
我正在遵循一个教程,该教程只是将字符串传递给SQLiteAsyncConnection的构造函数,但是(不再?)可以接受。我用谷歌搜索找到了一个更新的解决方案,并且几乎到处都找到了向构造函数添加平台的解决方案,但是这给我带来了错误。
我认为我可能没有将正确的NUGet软件包添加到项目中。我已经将sqlite-net-pcl包添加到共享项目和android项目中。
我今天还更新了所有NUGet软件包,重建了解决方案,甚至删除了/ bin和/ obj文件夹,但仍然无法正常工作。
using System.IO;
using SQLite.Net;
using SQLite.Net.Async;
using Xamarin.Forms;
using SQLiteTest.Droid;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
[assembly: Dependency(typeof(SQLiteDB))]
namespace SQLiteTest
{
public class SQLiteDB : ISQLiteDB
{
public SQLiteAsyncConnection GetAsyncConnection()
{
const string fileName = "test.db3";
var documentsPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
var path = Path.Combine(documentsPath, fileName);
var platform = new SQLite.Net.Platform.XamarinAndroid.SQLitePlatformAndroid();
var cwLock = new SQLiteConnectionWithLock(platform, new SQLiteConnectionString(path, true));
var connection = new SQLiteAsyncConnection(() => cwLock);
return connection;
}
}
}
我得到的错误是:
错误CS0234在名称空间“ SQLite.Net”中不存在类型或名称空间名称“平台”(您是否缺少程序集引用?)SQLiteTest.Android D:\ Mobile Apps \ Mosh \ SQLiteTest \ SQLiteTest \ SQLiteTest。 Android \ SQLiteDB.cs
答案 0 :(得分:0)
好吧,我很确定您没有将refund
软件包添加到您的本机Android项目中,这在使用此依赖项服务时会导致此问题。
如果您使用的是SQLite-net和或SQLite.Net-PCL,请在以下路径中查找Xamarin.Android平台dll:
SQLite.Net.Platform.XamarinAndroid.dll