Flutter运行在Android上卡Running Gradle task 'assembleDebug'...,是因为无法访问官方源,下面是换源方法。
一、修改flutter及gradle配置文件
1、修改resolve_dependencies.gradle.kts文件,将repositories中的镜像源更改为国内

groovy
import java.nio.file.Paths
// This script is used to warm the Gradle cache by downloading the Flutter dependencies
// used during the build. This script is invoked when `flutter precache` is run.
//
// Command:
// gradle -b <flutter-sdk>packages/flutter_tools/gradle/resolve_dependencies.gradle.kts
// resolveDependencies
//
// This way, Gradle can run with the `--offline` flag later on to eliminate any
// network request during the build process.
//
// This includes:
// 1. The embedding
// 2. libflutter.so
val storageUrl: String = System.getenv("FLUTTER_STORAGE_BASE_URL") ?: "https://storage.googleapis.com"
val flutterRoot = projectDir.parentFile?.parentFile?.parentFile
requireNotNull(flutterRoot) { "Flutter root directory not found!" }
require(flutterRoot.isDirectory) { "Flutter root is not a valid directory!" }
val engineVersion =
Paths
.get(
flutterRoot.absolutePath,
"bin",
"cache",
"engine.stamp"
).toFile()
.readText()
.trim()
var engineRealm =
Paths
.get(
flutterRoot.absolutePath,
"bin",
"cache",
"engine.realm"
).toFile()
.readText()
.trim()
if (engineRealm.isNotEmpty()) {
engineRealm += "/"
}
repositories {
maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }
maven { url = uri("https://maven.aliyun.com/repository/google") }
maven { url = uri("https://maven.aliyun.com/repository/public") }
maven {
url = uri("$storageUrl/${engineRealm}download.flutter.io")
}
}
configurations {
create("flutterRelease") {
extendsFrom(configurations.getByName("releaseImplementation"))
}
create("flutterDebug") {
extendsFrom(configurations.getByName("debugImplementation"))
}
create("flutterProfile") {
extendsFrom(configurations.getByName("debugImplementation"))
}
}
dependencies {
"flutterRelease"("io.flutter:flutter_embedding_release:1.0.0-$engineVersion")
"flutterRelease"("io.flutter:armeabi_v7a_release:1.0.0-$engineVersion")
"flutterRelease"("io.flutter:arm64_v8a_release:1.0.0-$engineVersion")
"flutterProfile"("io.flutter:flutter_embedding_profile:1.0.0-$engineVersion")
"flutterProfile"("io.flutter:armeabi_v7a_profile:1.0.0-$engineVersion")
"flutterProfile"("io.flutter:arm64_v8a_profile:1.0.0-$engineVersion")
"flutterDebug"("io.flutter:flutter_embedding_debug:1.0.0-$engineVersion")
"flutterDebug"("io.flutter:armeabi_v7a_debug:1.0.0-$engineVersion")
"flutterDebug"("io.flutter:arm64_v8a_debug:1.0.0-$engineVersion")
"flutterDebug"("io.flutter:x86_debug:1.0.0-$engineVersion")
"flutterDebug"("io.flutter:x86_64_debug:1.0.0-$engineVersion")
}
tasks.register("resolveDependencies") {
doLast {
configurations.forEach { configuration ->
if (configuration.name.startsWith("flutter")) {
configuration.resolve()
}
}
}
}
2、进入gradle安装目录下的init.d目录,创建init.gradle文件

groovy
allprojects {
repositories {
all { ArtifactRepository repo ->
if (repo instanceof MavenArtifactRepository) {
def url = repo.url.toString()
if (url.contains('repo1.maven.org') ||
url.contains('jcenter.bintray.com') ||
url.contains('google.com')) {
project.logger.lifecycle "Repository ${repo.url} replaced by Aliyun"
remove repo
}
}
}
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
}
}
二、修改项目gradle文件配置
1、修改build.gradle.kts文件中的镜像为国内

groovy
allprojects {
repositories {
maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }
maven { url = uri("https://maven.aliyun.com/repository/google") }
maven { url = uri("https://maven.aliyun.com/repository/public") }
google()
mavenCentral()
}
}
val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get()
rootProject.layout.buildDirectory.value(newBuildDir)
subprojects {
val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
project.layout.buildDirectory.value(newSubprojectBuildDir)
}
subprojects {
project.evaluationDependsOn(":app")
}
tasks.register<Delete>("clean") {
delete(rootProject.layout.buildDirectory)
}
2、修改settings.gradle.kts文件中的镜像为国内

groovy
pluginManagement {
val flutterSdkPath = run {
val properties = java.util.Properties()
file("local.properties").inputStream().use { properties.load(it) }
val flutterSdkPath = properties.getProperty("flutter.sdk")
require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
flutterSdkPath
}
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
repositories {
maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }
maven { url = uri("https://maven.aliyun.com/repository/google") }
maven { url = uri("https://maven.aliyun.com/repository/public") }
gradlePluginPortal()
google()
mavenCentral()
}
}
plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "8.7.3" apply false
id("org.jetbrains.kotlin.android") version "2.1.0" apply false
}
include(":app")
3.修改gradle-wrapper.properties中的distributionUrl

ini
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-8.12-all.zip