Как я могу использовать SQLiteAsyncConnection для Android, используя Xamarin? - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь реализовать SQLite в решении Xamarin с использованием Visual Studio.Тем не менее, я не могу найти правильный способ реализации 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

1 Ответ

0 голосов
/ 22 января 2019

Ну, я почти уверен, что вы не добавили пакет SQLite.Net.Platform.XamarinAndroid.dll в свой собственный проект Android, который вызывает эту проблему при использовании этой службы зависимостей.

Если вы используете SQLite-net и или SQLite.Net-PCL найдите платформу Xamarin.Android, указав путь ниже:

 packages\SQLite.Net-PCL.3.1.1\lib\MonoAndroid\`SQLite.Net.Platform.XamarinAndroid.dll`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...