.NET 8 MAUI Android项目中sqlite3.dll找不到问题求助
解决.NET 8 MAUI Android端sqlite3.dll未找到异常
核心原因
Mono.Data.Sqlite是适配旧Xamarin环境的包,在.NET MAUI Android平台中,系统默认不自带sqlite3原生库,而该包未自动包含适配MAUI的Android原生依赖,导致加载失败;iOS端正常是因为系统内置了sqlite3库。
解决方案
方案1:替换为MAUI兼容的SQLite NuGet包(推荐)
移除旧的Mono.Data.Sqlite包,改用针对.NET MAUI优化的SQLite库,比如SQLite-net-pcl或Microsoft.Data.Sqlite:
- 编辑项目文件,删除以下引用:
<PackageReference Include="Mono.Data.Sqlite" Version="1.0.61" /> - 在NuGet包管理器中安装
SQLite-net-pcl(选择稳定版即可) - 调整数据库初始化代码(以SQLite-net-pcl为例):
using SQLite; var dbPath = Path.Combine(FileSystem.AppDataDirectory, "mydatabase.db"); var dbConnection = new SQLiteConnection(dbPath); // 后续业务逻辑可保持原有逻辑不变
方案2:保留Mono.Data.Sqlite并手动添加原生库
如果无法大规模修改现有代码,可手动添加Android平台的sqlite3原生库:
- 下载对应Android主流架构(armeabi-v7a、arm64-v8a、x86、x86_64)的
sqlite3.so文件 - 在MAUI项目的
Platforms/Android目录下创建libs文件夹,再在libs下创建对应架构的子文件夹(如armeabi-v7a),将对应架构的sqlite3.so放入子文件夹 - 选中每个
sqlite3.so文件,设置属性:- 生成操作:
AndroidNativeLibrary - 复制到输出目录:
如果较新则复制
- 生成操作:
- 检查项目属性的Android选项,确保勾选了与你放置so文件对应的ABI架构
内容的提问来源于stack exchange,提问作者Karthika M
相关产品推荐
相关产品推荐

