sqlite - Xamarin 与 Entity Framework 核心 : Error: unauthorized access to "/system/lib/libsqlite.so" on Android 7

标签 sqlite xamarin.android entity-framework-core

我正在尝试使用新的 Entity Framework Core 创建 Xamarin Forms 应用程序。该应用程序针对 android 6.0,但我的模拟器运行的是 Android 7.0。我在android项目上安装了以下相关的Nuget包:

  • Microsoft.EntityFrameworkCore --> 1.1.1
  • Microsoft.EntityFrameworkCore.Sqlite --> 1.1.1

当在 Android 上访问我的 DbContext 时,会弹出一条消息:检测到未经授权访问“/system/lib/libsqlite.so”的 native 库存在问题。

This Xamarin 论坛线程建议,这是由于不再支持 native SqLite 二进制文件(在 Android 7 上?),并且常见的修复似乎是切换到 SqLite.Net PCL。

但是,由于 Microsoft.EntityFrameworkCore.Sqlite 依赖于 Microsoft.Data.Sqlite,而后者又依赖于 native SqLite 包,我不能只替换它(或者我可以吗?)

奇怪的是,尽管错误消息另有提示,但数据访问似乎有效。至少运行迁移并重复写入数据库将创建新的 ID。

当然,我可以放弃 EF Core,但我猜很多人都在考虑在未来将它用于 Xamarin。因此,如果有人能找到/知道修复方法,那就太好了。

最佳答案

我遇到了同样的问题。我使用以下库修复了此问题:sqlite-net-pcl(版本 1.2.0)、SQLitePCLRaw.bundle_green、SQLitePCLRaw.core、SQLitePCLRaw.lib.e_sqlite3.android、SQLitePCLRaw.provider.e_sqlite3.android。

关于sqlite - Xamarin 与 Entity Framework 核心 : Error: unauthorized access to "/system/lib/libsqlite.so" on Android 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43177615/

相关文章:

android - 从 .db 文件保存信息的正确方法是什么?

android - android单声道的消息框

android - 如何让 PixlUI for Android 自定义字体正常工作?

c# - 如何从代码应用部分迁移?

java - SQLite:如何插入未完整填充列的文档?

javascript - 将十六进制值与 SQLite 查询(如 JavaScript)匹配

azure - 通过 Azure 通知中心使用 Xamarin Forms 在 Android 模拟器上推送通知

entity-framework - 全局禁用EF Core 2上的级联删除

asp.net - 高效连接 Entity Framework Core 中另一个表的最新记录

Sqlite - 使用 GROUP BY 选择 DISTINCT