前言

在开发Flutter应用时,经常会遇到Gradle构建卡在Running Gradle task 'assembleDebug’阶段的问题。本文将分享如何通过配置阿里镜像和腾讯镜像下载依赖的方法解决这些问题。

解决方案: 配置阿里云镜像(别的镜像只需要修改地址即可)

步骤1: 修改settings.gradle.kts

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/public/") }
        maven { url = uri("https://maven.aliyun.com/repository/spring/") }
        maven { url = uri("https://maven.aliyun.com/repository/google/") }
        maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin/") }
        maven { url = uri("https://maven.aliyun.com/repository/spring-plugin/") }
        maven { url = uri("https://maven.aliyun.com/repository/grails-core/") }
        maven { url = uri("https://maven.aliyun.com/repository/apache-snapshots/") }
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}

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")

步骤2: 修改build.gradle.kts

allprojects {
    repositories {
        maven { url = uri("https://maven.aliyun.com/repository/public/") }
        maven { url = uri("https://maven.aliyun.com/repository/spring/") }
        maven { url = uri("https://maven.aliyun.com/repository/google/") }
        maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin/") }
        maven { url = uri("https://maven.aliyun.com/repository/spring-plugin/") }
        maven { url = uri("https://maven.aliyun.com/repository/grails-core/") }
        maven { url = uri("https://maven.aliyun.com/repository/apache-snapshots/") }
        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)
}

步骤3: 修改gradle-wrapper.properties,后面gradle换成自己的版本即可,为了保险还是先去
https://mirrors.cloud.tencent.com/gradle 地址里查询自己的版本是否存在

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-8.12-all.zip

最后一步骤如果以上还为解决您的问题,在自己C盘目录下C:\Users\Administrator.gradle(我这里是Administrator),修改gradle.properties文件

# 阿里云 Maven 镜像
repositories.grails.default = https://maven.aliyun.com/repository/public
# Optional, you can add other sources
repositories.grails.default.1 = https://mirrors.tuna.tsinghua.edu.cn/maven/repos/public
# Optional, adding Central repository
repositories.grails.default.2 = https://repo.maven.apache.org/maven2

# 其他可能的配置
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=1080
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=1080

总结

通过以上方法,我们可以解决Flutter项目中常见的Gradle构建问题。配置阿里云镜像是首选方案,它能够稳定快速地下载大多数依赖;清理Gradle缓存则可以解决潜在的缓存损坏问题。
命令如下

flutter clean --清除
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐