Google Play发布Flutter应用遇libflutter.so缺失问题求解决方案
Flutter应用Google Play发布报错
libflutter.so找不到的解决方案 问题原因
该错误核心是Android App Bundle的架构分发适配问题:Google Play会根据目标设备的CPU架构拆分分发对应版本的APK,如果打包过程中某类架构(比如Pixel 2的armeabi-v7a)的libflutter.so库未被正确打包进App Bundle,就会导致设备加载时找不到该库。
针对性解决方案(适配Codemagic,无需多次发布验证)
调整Android构建配置
在android/app/build.gradle的android代码块中添加NDK架构过滤配置,确保打包所有必要架构:android { // ... 其他配置 defaultConfig { // ... 其他配置 ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } // ... 其他配置 flutter { source '../..' ndkVersion flutter.ndkVersion } }修正Codemagic构建命令
在Codemagic的构建流程中,使用标准的App Bundle构建命令,不要添加拆分架构参数:flutter build appbundle --release避免使用
--split-per-abi,让Google Play负责根据设备架构分发对应APK,确保所有架构的库都被包含在bundle中。本地预验证bundle完整性
使用bundletool工具生成多架构APK包,提取Pixel 2对应的armeabi-v7a架构APK并解压,检查lib/armeabi-v7a/目录下是否存在libflutter.so,提前验证打包结果,避免消耗Codemagic测试额度:# 生成APKs包 bundletool build-apks --bundle=build/app/outputs/bundle/release/app-release.aab --output=app.apks --ks=你的密钥库路径 --ks-pass=pass:密钥库密码 --ks-key-alias=密钥别名 --key-pass=pass:密钥密码 # 提取armeabi-v7a架构APK bundletool extract-apks --apks=app.apks --output-dir=extracted-apks --abi=armeabi-v7a升级Flutter稳定版
确保使用的Flutter版本为最新稳定版,避免旧版本中存在的架构打包bug,减少不必要的兼容性问题。
内容的提问来源于stack exchange,提问作者Naografix
相关产品推荐
相关产品推荐

