Я полностью следовал этому учебнику о том, как хранить данные в локальной базе данных. На iOS все работает нормально, к сожалению, на Android я получаю исключение при создании таблицы в моем файле базы данных. Метод создания таблицы:
public CalcDatabase(string dbPath)
{
database = new SQLiteAsyncConnection(dbPath);
database.CreateTableAsync<Calculation>().Wait();
}
А мой пользовательский класс для получения пути к базе данных на Android выглядит следующим образом:
public class LocalFileHelper : IFileHelper
{
public string GetLocalFilePath(string filename)
{
var path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
path = Path.Combine(path, filename);
if(!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
return path;
}
}
Это ошибка, которую я получаю из SQLite:
Не удалось открыть файл базы данных: /data/user/0/com.companyname.XX/files/Calculation.db3 (CannotOpen)
Я пытался настроить таргетинг на несколько различных API, я пытался очистить и перестроить свое решение и попытался переустановить пакеты SQLite-net-pcl NuGet по всему решению. Ничего не работает.
Я прочитал, что это связано с разрешениями, но я все же нахожу странным, что официальный учебник Microsoft не раскрывает это, если бы это было что-то.