Flutter应用Google Play生产环境崩溃:libflutter.so缺失问题求助
解决Flutter部署Google Play后"couldn't find libflutter.so"崩溃问题
以下是几个经过验证的解决方案,按优先级尝试:
禁用Google Play的ABI拆分
Google Play的App Bundle拆分机制可能导致部分ABI的包缺失libflutter.so。在android/app/build.gradle中添加配置禁用ABI拆分:android { // 其他配置... bundle { abi { enableSplit = false } } }重新构建App Bundle并上传,这样生成的通用包会包含所有指定ABI的so文件。
验证编译产物中的so文件
执行release编译后,解压生成的APK或App Bundle(可使用bundletool导出APK),检查lib/[abi]/目录下是否存在libflutter.so。示例命令:# 导出App Bundle为APK集合 bundletool build-apks --bundle=build/app/outputs/bundle/release/app-release.aab --output=app.apks --ks=your-keystore.jks --ks-pass=pass:your-password --ks-key-alias=your-alias --key-pass=pass:your-key-password # 解压APK集合并查看指定ABI的包内文件 unzip app.apks -d app-apks unzip app-apks/split_arm64-v8a.apk -d arm64-apk ls arm64-apk/lib/arm64-v8a/如果找不到libflutter.so,说明编译过程中so文件未正确打包,需进一步排查编译配置。
指定稳定NDK版本
不兼容的NDK版本可能导致so文件打包异常。在android/build.gradle中指定Flutter官方推荐的稳定NDK版本:buildscript { ext { // 其他版本配置... ndkVersion = "25.2.9519653" } }同时确保
android/app/build.gradle中没有覆盖该版本配置。彻底清理缓存后重建
旧编译缓存可能引发异常,执行以下命令清理后重新构建:flutter clean rm -rf android/.gradle android/app/build flutter pub get flutter build appbundle --release检查签名流程是否篡改文件
确保使用Flutter官方签名流程,签名后不要用第三方工具修改APK/App Bundle。若使用Google Play自动签名,需检查Console中的签名配置是否正确。
内容的提问来源于stack exchange,提问作者Israr
相关产品推荐
相关产品推荐

