Flutter应用发布至Google Play后崩溃,涉libflutter.so等文件求解决方案
针对你发布到Google Play后出现的libflutter.so、split_config.arm64_v8a.apk!libflutter.so相关崩溃,可按以下步骤排查解决:
检查ABI拆分配置
确认android/app/build.gradle中的ndk.abiFilters配置覆盖主流架构,避免拆分后的APK缺少对应架构的so文件:android { defaultConfig { ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } }同时确保Flutter SDK版本与编译目标ABI匹配,避免版本不兼容导致的引擎文件错误。
清理缓存并重新构建
执行以下命令彻底清理旧缓存,重新构建发布用的App Bundle:flutter clean flutter pub get flutter build appbundle --release旧缓存可能残留之前的ABI配置或损坏的so文件,清理后构建能避免此类问题。
验证so文件完整性
从Google Play下载对应arm64-v8a架构的拆分APK,解压后检查lib/arm64-v8a/libflutter.so是否存在且大小正常,对比本地构建的App Bundle中提取的同架构so文件哈希值,排除分发过程中的文件损坏。升级Flutter到稳定版
部分旧版本Flutter存在App Bundle构建时so文件打包的已知bug,升级到最新稳定版可修复此类问题:flutter upgrade测试拆分APK并获取详细日志
通过Google Play内部测试渠道下载对应架构的拆分APK到真机,使用Android Studio Logcat或Firebase Crashlytics获取完整崩溃栈跟踪,定位是Flutter引擎初始化错误还是第三方依赖的so文件冲突。临时禁用ABI拆分
如果上述方法无效,可尝试禁用ABI拆分构建通用APK,排查是否为拆分流程导致的问题:android { bundle { abi { enableSplit = false } } }此方式会增大APK体积,但可快速验证问题根源。
附崩溃截图:

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

