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

Flutter应用发布Google Play遇预启动错误:libflutter.so缺失

解决Flutter发布Google Play时libflutter.so找不到的问题

问题描述

发布Flutter应用到Google Play商店时,启动报错:

java.lang.RuntimeException: Unable to start activity ComponentInfo{fr.domain.package_name/fr.domain.package_nam.MainActivity}: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found

已尝试在build.gradle中添加如下packagingOptions配置,但问题未解决:

packagingOptions {
    pickFirst 'lib/x86_64/libapp.so'
    pickFirst 'lib/x86_64/libflutter.so'
    pickFirst 'lib/armeabi-v7a/libapp.so'
    pickFirst 'lib/armeabi-v7a/libflutter.so'
    pickFirst 'lib/arm64-v8a/libapp.so'
    pickFirst 'lib/arm64-v8a/libflutter.so'
}

可行解决方案

  • 检查Google Play应用签名配置
    若使用Google Play App Signing,需确认签名过程未丢失so文件。在Google Play控制台「发布管理」→「应用签名」中查看配置,确保未过滤相关ABI架构的文件。

  • 明确指定支持的ABI架构
    在android/app/build.gradle的defaultConfig中添加ABI过滤,避免架构遗漏或冗余:

    defaultConfig {
        // 其他原有配置
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
        }
    }
    
  • 调整App Bundle拆分规则
    Google Play默认会按设备架构拆分APK,可能导致so文件缺失。修改build.gradle的bundle配置,确保拆分后包含所需架构的so文件:

    android {
        // 其他原有配置
        bundle {
            abi {
                enableSplit = true
                include 'armeabi-v7a', 'arm64-v8a', 'x86_64'
            }
            language { enableSplit = false }
            density { enableSplit = false }
        }
    }
    
  • 清理缓存后重新构建
    执行以下命令清理项目缓存,再重新生成发布包:

    flutter clean
    flutter build appbundle --release
    
  • 检查第三方插件的ABI兼容性
    确认项目中使用的原生插件是否支持你指定的ABI架构,避免因插件缺失对应so文件导致打包异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:35:10