You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MAUI .NET 8 Android端无法加载sqlite3 DLL问题求助

解决MAUI .NET 8 Android端SQLite加载DLL异常问题

问题根源

Mono.Data.Sqlite 是适配传统Mono环境的旧包,在MAUI .NET 8的Android运行时中无法正确提供sqlite3原生库文件,导致加载失败;iOS端因环境对旧包兼容性更好,所以未出现异常。

修复步骤

1. 移除旧依赖包

打开项目的.csproj文件,删除以下引用:

<PackageReference Include="Mono.Data.Sqlite" Version="1.0.61" />

2. 添加MAUI兼容的SQLite包

在.csproj中添加适配.NET 8的SQLite相关依赖:

<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.0" />
<PackageReference Include="SQLitePCLRaw.bundle_green" Version="2.1.8" />

注:版本号可根据NuGet上的最新稳定版调整

3. 替换数据库连接代码

将原Mono.Data.Sqlite的API替换为Microsoft.Data.Sqlite的对应实现,示例:
原代码:

using Mono.Data.Sqlite;
var conn = new SqliteConnection("Data Source=your_db_name.db");

替换后:

using Microsoft.Data.Sqlite;
var conn = new SqliteConnection("Data Source=your_db_name.db");

4. 清理重建项目

  • 执行清理解决方案(Build -> Clean Solution)
  • 执行重建解决方案(Build -> Rebuild Solution)
  • 重新部署到Android设备/模拟器测试

额外排查点

如果问题仍存在,可检查:

  • 确认数据库文件路径是否正确,MAUI中获取应用私有存储路径可使用:
    string dbPath = Path.Combine(FileSystem.AppDataDirectory, "your_db_name.db");
    
  • 对于Android 13及以下版本,若数据库存储在外部存储,需在AndroidManifest.xml中添加对应权限(私有目录无需额外权限)

内容的提问来源于stack exchange,提问作者Anitha v

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 11:48:15