簡體   English   中英

如何使用Xamarin在Android上使用SQLiteAsyncConnection?

[英]How can i use an SQLiteAsyncConnection for Android using Xamarin?

我正在嘗試使用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類型或名稱空間名稱'Platform'在名稱空間'SQLite.Net'中不存在(您是否缺少程序集引用?)SQLiteTest.Android D:\\ Mobile Apps \\ Mosh \\ SQLiteTest \\ SQLiteTest \\ SQLiteTest.Android \\ SQLiteDB .cs

好吧,我很確定您沒有將SQLite.Net.Platform.XamarinAndroid.dll包添加到您的本機Android項目中,這在使用此依賴項服務時會導致此問題。

如果您使用的是SQLite-net和/或SQLite.Net-PCL ,請在以下路徑中查找Xamarin.Android平台dll:

 packages\SQLite.Net-PCL.3.1.1\lib\MonoAndroid\`SQLite.Net.Platform.XamarinAndroid.dll`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM