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

.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:

  1. 编辑项目文件,删除以下引用:
    <PackageReference Include="Mono.Data.Sqlite" Version="1.0.61" />
    
  2. 在NuGet包管理器中安装SQLite-net-pcl(选择稳定版即可)
  3. 调整数据库初始化代码(以SQLite-net-pcl为例):
    using SQLite;
    
    var dbPath = Path.Combine(FileSystem.AppDataDirectory, "mydatabase.db");
    var dbConnection = new SQLiteConnection(dbPath);
    // 后续业务逻辑可保持原有逻辑不变
    

方案2:保留Mono.Data.Sqlite并手动添加原生库

如果无法大规模修改现有代码,可手动添加Android平台的sqlite3原生库:

  1. 下载对应Android主流架构(armeabi-v7a、arm64-v8a、x86、x86_64)的sqlite3.so文件
  2. 在MAUI项目的Platforms/Android目录下创建libs文件夹,再在libs下创建对应架构的子文件夹(如armeabi-v7a),将对应架构的sqlite3.so放入子文件夹
  3. 选中每个sqlite3.so文件,设置属性:
    • 生成操作:AndroidNativeLibrary
    • 复制到输出目录:如果较新则复制
  4. 检查项目属性的Android选项,确保勾选了与你放置so文件对应的ABI架构

内容的提问来源于stack exchange,提问作者Karthika M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:47:06