求助:运行Flutter项目时Gradle task assembleDebug失败(退出码1)
解决Flutter项目中Gradle task assembleDebug failed with exit code 1的方案
以下是针对你已经尝试过flutter clean和flutter pub get后仍未解决问题的具体排查步骤:
1. 检查Gradle版本兼容性
- 打开项目根目录下的
android/build.gradle文件,确认com.android.tools.build:gradle的版本与本地安装的Gradle版本兼容(可通过Android Studio的Gradle工具窗口查看本地Gradle版本)。若版本不\textlo/node\text set Convert结构 study,lt总,不对,重来:若版本不匹配,更新到官方兼容的版本组合后,删除android/.gradle`目录,再重新运行项目。 - 打开
android/gradle/wrapper/gradle-wrapper.properties,检查distributionUrl指向的Gradle版本是否为稳定版,比如https\://services.gradle.org/distributions/gradle-7.5-all.zip。如果是老旧版本,替换后执行flutter run,让Gradle自动重新下载对应版本。
2. 修复Android SDK环境问题
- 执行
flutter doctor命令,根据输出修复所有提示的问题,比如缺失的Android SDK组件、未接受的许可证等。若有许可证问题,运行flutter doctor --android-licenses并按提示接受所有许可证。 - 打开Android Studio的SDK Manager,确认已安装项目
targetSdkVersion对应的Android SDK Platform,以及最新的Android SDK Build-Tools。
3. 清除深层缓存
- 执行
flutter pub cache clean清除Pub的全局缓存,之后重新执行flutter pub get拉取依赖,避免缓存损坏导致的依赖加载问题。 - 删除
android/app/build目录,该目录存储编译生成的中间文件,若文件损坏也会引发编译失败,删除后重新运行项目即可自动生成新文件。
4. 排查依赖冲突与插件问题
- 检查
pubspec.yaml中的第三方依赖,尝试暂时注释掉非核心的插件(比如权限、原生交互类插件),逐步重新运行项目,定位是否是某个插件导致的编译冲突。 - 若日志中出现
Manifest merger failed相关提示,可在android/app/src/main/AndroidManifest.xml的<application>标签中添加tools:replace="android:label"等对应属性解决冲突(需在根标签引入xmlns:tools="http://schemas.android.com/tools")。
5. 分析详细错误日志
- 运行
flutter run -v获取完整的编译日志,重点查看FAILURE: Build failed with an exception.之后的具体错误信息,比如类找不到、资源重复、minSdkVersion不兼容等,根据具体提示针对性解决。比如若提示某个依赖的minSdkVersion低于项目配置,可在android/app/build.gradle中调整项目的minSdkVersion至兼容版本。
6. 其他环境排查
- 若使用Windows系统,检查是否有防火墙或代理阻止Gradle下载依赖,可暂时关闭代理或在
gradle.properties中配置正确的代理信息(如需)。 - 确认
android/app/build.gradle中的compileSdkVersion、minSdkVersion、targetSdkVersion配置合理,且与所有插件的要求版本兼容。
内容的提问来源于stack exchange,提问作者M.Matin Parvizi
相关产品推荐
相关产品推荐

