解决Flutter构建安卓项目卡在Flutter: Running Gradle task ‘assembleDebug‘...:替换国内 Maven 镜像

一、问题根源及解决思路

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
}
相关推荐
alexhilton1 天前
模块化Jetpack Compose架构
android·kotlin·android jetpack
厮年断弦1 天前
AI 辅助开发实录:一周做完一个 Android 本地音乐播放器,这些坑替你踩了
android
hai_android1 天前
InputStage 责任链核心执行流程
android·android studio·android jetpack
君赏1 天前
基于 FlutterPatch 快速接入 Flutter 热更新
flutter
mmsx1 天前
Android 测绘计算工程化:七四参数、高程拟合与单位系统
android·kotlin
律宏阔1 天前
Dart FFI 内存管理:用 using + Arena 替代嵌套 try-finally
前端·flutter
律宏阔1 天前
Flutter 调用 Go:从 c-shared + ffigen 到 @Native + Native Assets 踩坑记录
前端·flutter
律宏阔1 天前
Dart FFI 回调无法使用局部变量?使用 NativeCallable.isolateLocal
前端·flutter
我是场1 天前
我的NPI项目之-Touch的EE特性
android·arm开发
天空之城--1 天前
Android一周动态:AI编程、Compose与车载生态新信号
android·flutter