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

Flutter安卓应用运行报错:无法加载libflutter.so求助

解决Flutter安卓应用启动时libflutter.so找不到的问题

问题描述

运行Flutter安卓应用时触发崩溃,核心错误信息如下:

E/AndroidRuntime(27978): Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[...] couldn't find "libflutter.so"
应用运行在armv7l架构设备上,native库目录仅包含ffmpeg相关的.so文件,缺失Flutter核心库libflutter.so

已尝试在gradle中添加ABI过滤配置,但问题未解决:

ndk { abiFilters "arm64-v8a", "armeabi-v7a", "x86", "x86_64" }

解决方案

  • 确认gradle配置位置正确
    确保ndk配置块放在android/app/build.gradle的defaultConfig节点下,完整配置示例:

    android {
        defaultConfig {
            applicationId "your.app.id"
            minSdkVersion 21
            targetSdkVersion 33
            versionCode 1
            versionName "1.0"
    
            ndk {
                abiFilters "arm64-v8a", "armeabi-v7a", "x86", "x86_64"
            }
        }
    }
    
  • 清理构建缓存并重新构建
    执行以下命令彻底清理缓存后重新编译:

    flutter clean
    rm -rf android/.gradle android/app/build
    flutter pub get
    flutter build apk --split-per-abi
    

    使用--split-per-abi参数会生成对应每个ABI的独立APK,确保目标架构的包包含完整的native库。

  • 检查Flutter SDK的架构支持
    确认本地Flutter SDK包含对应架构的libflutter.so文件,路径为flutter/bin/cache/artifacts/engine/android-<arch>/libflutter.so,如果缺失,切换到稳定版SDK:

    flutter channel stable
    flutter upgrade
    
  • 排查第三方依赖的ABI冲突
    你使用的ffmpegkit等第三方库可能仅支持特定ABI,或打包时覆盖了Flutter的native库:

    • 确保第三方依赖的ABI配置与Flutter一致
    • 若ffmpegkit仅支持armeabi-v7a和arm64-v8a,可修改abiFilters为这两个值,减少不必要的架构适配
  • 验证测试设备/模拟器的架构
    确保测试设备的架构在配置的abiFilters列表中(armv7l对应armeabi-v7a,属于支持范围),模拟器需选择对应ABI的系统镜像,避免使用不兼容的架构。

内容的提问来源于stack exchange,提问作者Mona Mandor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 18:07:21