一、问题根源及解决思路
Gradle 是 Flutter 安卓项目构建的核心工具。
assembleDebug是 Gradle 构建安卓Debug版APK的核心任务,执行时会下载项目及第三方插件的安卓原生依赖。
国外源在国内访问存在网络延迟高、DNS解析失败、链路拦截等问题,直接导致Gradle下载超时,最终表现为构建卡住或报错(如Could not download xxx.jar、Read timed out、UnknownHostException等)。
所以,我们要将Gradle的依赖下载源替换为阿里云国内镜像(maven.aliyun.com),该镜像同步了谷歌、Maven官方的所有依赖,国内访问速度大幅提升,秒下。
二、修改前需要了解的内容
配置文件有两种格式
- 传统格式:
build.gradle(Groovy语法) - 新版格式:
build.gradle.kts(Kotlin DSL语法)
配置文件的路径
- 项目根目录中的配置文件,路径示例为:
项目根目录/android/build.gradle.kts - 本地插件(如有)中的配置文件,路径示例为:
项目根目录/packages/插件名/android/build.gradle
三、替换为阿里云国内镜像
格式1:修改build.gradle.kts
kotlin
// buildscript块:配置Gradle构建工具依赖源
buildscript {
repositories {
// 注释/删除原有国外源
// google()
// mavenCentral()
// 新增阿里云镜像(Kotlin DSL语法)
maven(url = "https://maven.aliyun.com/repository/google")
maven(url = "https://maven.aliyun.com/repository/public")
maven(url = "https://maven.aliyun.com/repository/gradle-plugin")
}
dependencies {
// 保持原有gradle插件版本,注意括号和引号格式
classpath("com.android.tools.build:gradle:7.3.1")
}
}
// allprojects块:配置项目所有模块依赖源
allprojects {
repositories {
// 注释/删除原有国外源
// google()
// mavenCentral()
// 新增阿里云镜像
maven(url = "https://maven.aliyun.com/repository/google")
maven(url = "https://maven.aliyun.com/repository/public")
maven(url = "https://maven.aliyun.com/repository/gradle-plugin")
}
}
// 保留原有clean任务(如有)
tasks.register("clean", Delete::class) {
delete(rootProject.buildDir)
}
格式2:修改build.gradle
dart
// buildscript块:配置Gradle构建工具自身的依赖源
buildscript {
repositories {
// 注释/删除原有国外源
// google()
// mavenCentral()
// 新增阿里云镜像
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
}
dependencies {
// 保持原有gradle插件版本(如7.3.1、7.4.2)
classpath 'com.android.tools.build:gradle:7.3.1'
}
}
// allprojects块:配置项目所有模块的依赖源
allprojects {
repositories {
// 注释/删除原有国外源
// google()
// mavenCentral()
// 新增阿里云镜像
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
}
}
// 保留原有clean任务(如有)
task clean(type: Delete) {
delete rootProject.buildDir
}