解决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
}
相关推荐
2601_9637713715 小时前
Offloading WP-Cron and Securing Ticket Webhooks on Enterprise IT Sites
android
花燃柳卧15 小时前
跨平台路由组件工程源码补充上传
android·flutter·kotlin
apihz15 小时前
随机驾考题目(C 照科一 / 科四 2000+ 题)免费API调用教程
android·java·c语言·开发语言·网络协议·tcp/ip
宸翰16 小时前
uni-app 设置 Android 底部虚拟导航栏背景色
android·前端·uni-app
TechNomad16 小时前
Kotlin类对象与接口详解
android·kotlin
心中有国也有家16 小时前
E-Brufen 技术选型全景:Flutter + 鸿蒙 + Hive CE
hive·hadoop·学习·flutter·华为·harmonyos
Mandy的名字被占用了19 小时前
Dart 与 Flutter 快速入门指南
后端·flutter·dart
QiLinkOS21 小时前
QiLink OS的失败数据共享平台的运作模式是否适用于所有行业?
android·开发语言·人工智能·算法·重构·开源
杉氧21 小时前
Framework 补完计划 (2):BufferQueue 与 SurfaceFlinger —— 像素的跨进程“接力赛”
android·架构·android jetpack
牢七21 小时前
RCE?复现成功
android