我从 Xamarin 项目迁移了 MAUI Net 8 项目。 我使用 Mono.Data.SQLite 包进行 SQLite 连接。它在 MAUI iOS 中运行良好。但在 Android 中,它会抛出如下异常,
System.DllNotFoundException: sqlite3 at Mono.Data.Sqlite.SQLite3.Open(String strFilename, SQLiteOpenFlagsEnum flags, Int32 maxPoolSize, Boolean usePool) at Mono.Data.Sqlite.SqliteConnection.Open()
因为
libsqlite3.so
MAUI Android 中缺少该库。而且我不想切换到另一个 SQLite 包,因为它会导致重大代码更改。
那么您能帮我们解决这个问题吗?
Mono.Data.Sqlite
似乎是一个引用旧包,自 2018 年以来没有更新。我无法评论它在 MAUI 应用程序中的有效性,但考虑到 MAUI 比包新,这可能是你的问题。
如果您的 MAUI 项目中需要 Sqllite,我推荐以下我在几个项目中使用过的软件包组合。
<PackageReference Include="sqlite-net-pcl" Version="1.9.172" />
<PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Version="2.1.8" />
<PackageReference Include="SQLitePCLRaw.bundle_green" Version="2.1.8" />
这些捆绑包带来了额外的魔力,使其可以跨平台工作。