构建Google Play版Android APK失败,Flutter打包报错求助
问题复现
构建用于Google Play Console的Android APK时出现以下错误:
FAILURE: Build failed with an exception.
Where:
Script 'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1156
What went wrong:
Execution failed for task ':app:compileFlutterBuildRelease'.
Process 'command 'C:\src\flutter\bin\flutter.bat'' finished with non-zero exit value 1
Try:
Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org
BUILD FAILED in 1m 45s
Running Gradle task 'assembleRelease'... 107.3s
Gradle task assembleRelease failed with exit code 1
已尝试flutter clean、flutter pub get、flutter pub upgrade --major-versions,均未解决问题。
排查与解决步骤
1. 获取详细错误日志
当前错误信息过于笼统,先执行带日志参数的构建命令定位具体问题:
flutter build apk --release --verbose
或使用Gradle栈追踪命令:
flutter build apk --release --stacktrace
输出内容会暴露具体诱因,比如依赖冲突、资源缺失、代码语法错误等。
2. 校验Flutter环境与依赖
- 执行
flutter doctor,确认Android SDK、NDK、Gradle等所有环境依赖配置正常,修复任何红叉提示的问题。 - 检查
pubspec.yaml中的依赖项,尝试逐个注释第三方包后重新构建,排查是否是特定依赖导致的兼容性问题。
3. 检查Android构建配置
打开android/app/build.gradle,确认release配置无误:
android { buildTypes { release { signingConfig signingConfigs.release // 确保签名配置路径、密码、别名正确 minifyEnabled true // 若开启混淆,需校验混淆规则是否适配所有依赖库 shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } }
4. 清理Gradle缓存
除flutter clean外,额外清理Gradle本地缓存:
- 删除项目根目录下的
.gradle文件夹 - 删除
android/.gradle文件夹 - 执行
flutter pub get后重新发起构建
5. 排查Release模式专属问题
部分代码在Debug模式正常,但Release模式下会因混淆、断言或环境变量触发错误:
- 检查是否存在依赖Debug专属API或变量的代码
- 若开启混淆,确认
proguard-rules.pro已添加第三方库的保留规则,避免核心类被错误混淆
6. 调整Flutter SDK版本
若问题源于SDK版本兼容性,尝试切换到稳定版:
flutter channel stable flutter upgrade
或回退至之前能正常构建的版本:
flutter downgrade <具体版本号>
内容的提问来源于stack exchange,提问作者Dhananjay Asewad

