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

一、问题根源及解决思路

Gradle 是 Flutter 安卓项目构建的核心工具。

assembleDebugGradle 构建安卓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
}
相关推荐
EQ-雪梨蛋花汤2 分钟前
【Sceneform-EQR】让Android 原生 3D开发更容易
android·3d
invicinble21 分钟前
springboot出现的原因(一)--处理spring和maven的关系
spring boot·spring·maven
三少爷的鞋23 分钟前
Android 架构指南之Data 层不要再暴露 start/stop 了:用 Flow 接管生命周期
android
李艺为25 分钟前
Android 14 U盘无法正常显示中文盘符(卷标)问题解决
android
陆业聪30 分钟前
Agent智能体:让AI自己调API干活——从Android Service到AI Agent的思维跃迁
android·人工智能·aigc
莞凰10 小时前
昇腾CANN的“灵脉根基“:Runtime仓库探秘
android·人工智能·transformer
NiceCloud喜云11 小时前
Claude Files API 深入:从上传、复用到配额管理的工程化指南
android·java·数据库·人工智能·python·json·飞书
ujainu11 小时前
CANN pto-isa:虚拟指令集如何连接编译与执行
android·ascend
莞凰12 小时前
昇腾CANN的“御剑飞行“:ATB仓库探秘
人工智能·flutter·transformer
赏金术士12 小时前
第六章:UI组件与Material3主题
android·ui·kotlin·compose