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

Flutter升级后出现SqfliteFfiException动态库加载失败问题求助

解决Flutter升级后sqflite_ffi找不到libsqlite3.so的问题

核心原因分析

该错误是sqflite_ffi无法加载Android平台的sqlite3动态库导致的,通常和Flutter版本升级后依赖兼容性、Android构建配置变化或缓存异常有关。

排查与解决步骤

1. 适配sqflite_ffi版本

  • 打开pubspec.yaml,确认sqflite_ffi版本与当前Flutter版本兼容(比如Flutter 3.10+建议使用sqflite_ffi 2.0+)。
  • 执行命令直接升级到最新兼容版本:
    flutter pub upgrade sqflite_ffi
    

2. 检查Android构建配置

  • 在android/app/build.gradle中,确保minSdkVersion不低于21(sqflite_ffi对Android的最低要求)。
  • 在android/build.gradle的android块中确认NDK配置:
    ndkVersion = "25.1.8937393" // 可替换为与当前Flutter兼容的NDK版本
    

3. 彻底清理构建缓存

  • 依次执行以下命令清除缓存并重建项目:
    flutter clean
    rm -rf android/.gradle
    rm -rf ~/.gradle/caches
    flutter pub get
    flutter run --debug
    

4. 强制使用系统sqlite3(Android端)

  • 在数据库初始化代码中,指定使用系统自带的sqlite库:
    import 'package:sqflite_ffi/sqflite_ffi.dart';
    import 'dart:io';
    
    void initDatabase() {
      if (Platform.isAndroid) {
        sqfliteFfiInit();
        // 强制切换为系统sqlite3实现
        databaseFactory = databaseFactoryFfiAndroid;
      }
      // 后续数据库初始化逻辑
    }
    

5. 配置R8混淆规则(若开启混淆)

  • 在android/app/proguard-rules.pro中添加规则,避免sqlite3相关代码被混淆移除:
    -keep class org.sqlite.** { *; }
    -keep class io.flutter.plugins.sqflite.** { *; }
    

6. 验证Flutter SDK完整性

  • 执行flutter doctor -v,检查Android相关组件(如NDK、CMake)是否缺失,按提示补全组件。

内容的提问来源于stack exchange,提问作者Shakhzod Bakhromov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:42:09