【发布时间】:2019-03-20 21:39:11
【问题描述】:
我一直在使用 sqlite-net-pcl 插件,但 Play 商店现在需要一个应用程序至少以 Android 版本 7 为目标。
当我以此为目标(目标 Android 版本 - 7.1)时,应用程序无法打开/创建数据库,它仅适用于较低版本的 Android,例如 5。 我知道有可能导致此问题的安全更改,但我不知道如何解决。
我得到了一个像Path.Combine(global::Android.OS.Environment.ExternalStorageDirectory.Path, filename);这样的android数据路径
然后在启动我的应用程序时尝试像这样打开数据库连接
string dbPath = DependencyService.Get<IFileHelper>().GetLocalFilePath("myDbName.db3");
var conn = new SQLiteAsyncConnection(dbPath);
我想使用SQLiteAsyncConnection 来处理表锁。
例外是:
未处理的异常:
SQLite.SQLiteException: Could not open database file: /storage/emulated/0/myDbName.db3 (CannotOpen)
我还确保我已经勾选了外部存储权限的读写。 我使用的插件是 https://github.com/praeclarum/sqlite-net,这是 xamarin 表单在其文档中推荐的。
【问题讨论】:
-
在更新到 android 8 有目标版本后,我这边一切正常。你的 sqllite nuget 包是最新的吗?
-
感谢您的回复!
标签: sqlite xamarin xamarin.forms xamarin.android