1、定位问题原因
在动手解决前,先精确找到问题根源。
运行诊断命令,在终端执行
flutter doctor -v,
检查 Flutter、Android SDK 等各项配置,并给出具体建议。
查看详细日志,在终端执行
flutter run --verbose
打印出详细的构建过程。
2、配置,解决因网络问题导致的依赖下载失败
终端打开
ls ~/.gradle/wrapper/dists/
看看是否有对应的版本的gradle,没有下载后放在对应位置。
一般到这一步就解决问题了。
Gradle 配置国内镜像,修改项目配置文件:
打开你 Flutter 项目下的 android/build.gradle 文件。
替换镜像源,找到 buildscript 和 allprojects 两个代码块,将其中的 repositories 部分替换为下面的阿里云镜像地址。
buildscript {
repositories {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
}
// ... 其他配置
}
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
}
}
3、清理,移除损坏的缓存文件
网络下载失败或进程中断可能导致缓存损坏。
-
清理项目:在项目根目录执行 flutter clean。
-
删除 Gradle 缓存:手动删除以下目录:
-
项目下的 android/.gradle 和 android/build 用户目录下的 ~/.gradle/caches。
-
获取依赖:执行 flutter pub get 重新获取项目依赖。
4、检查,确保开发环境兼容
环境配置不当也会引发问题。
- 检查 Java 版本:Flutter 推荐使用 Java 11。在终端执行 java -version 检查版本,如果不符请及时更新并正确设置 JAVA_HOME 环境变量。
- 检查 Gradle 版本:打开 android/gradle/wrapper/gradle-wrapper.properties 文件,确认 distributionUrl 使用的 Gradle 版本与你的 Flutter SDK 兼容。
- 更新 Flutter SDK:执行 flutter upgrade 将 SDK 更新到最新的稳定版。
5、在 Android 目录下直接运行 Gradle
如果以上步骤仍未解决,可以跳过 Flutter 工具链,直接在 Android 项目目录下手动运行 Gradle,能获取更精确的错误。
进入项目的 android 目录:
cd android
执行 Gradle 构建命令:
./gradlew assembleDebug --stacktrace
分析控制台输出的错误信息,根据提示进行针对性修复。