AndroidStudio创建新工程时gradle同步时间很长

164 阅读4分钟

问题:AndroidStudio在创建一个新的工程时,gradle同步的时间很长

  • gradle下载特别慢,进度几乎不动

    image.png

  • 依赖下载特别慢 image.png

处理

1、针对创建工程,gradle下载特别慢

我们可以去官网下载gradle.org/releases/ 下载指定的gradle版本

image.png

下载好后,存放在本地某个位置

然后我们取消掉底部的工程导入进度条

image.png

切换工程视图为Project,找到工程的gradle->wrapper->gradle-wrapper.properties文件,修改gradle的分发地址为本地下载好的gradle

image.png

distributionUrl=file:///D:/xxx/gradle-8.10-all.zip

2、针对依赖下载特别慢,甚至有些依赖下载不下来问题

我们可以添加一些国内的镜像源gradle的依赖仓库地址,如阿里的镜像仓库地址,还有华为、腾讯的等

在较新的gradle版本中,是在工程 根目录setting.gradle(groove)/ setting.gradle.kts(kts)文件中

image.png

在较旧的gradle版本中,是在工程 根目录build.gradle文件中

image.png

1、较新版本,groove

```
pluginManagement {
    repositories {
        mavenLocal()
        // 配置Maven仓库地址,以提高依赖下载速度
        // 添加中央仓库的阿里云镜像
        maven {
            url 'https://maven.aliyun.com/repository/central'
        }
        // 添加公共仓库的阿里云镜像,这个仓库包含了大量开源项目的发布版本
        maven {
            url 'https://maven.aliyun.com/repository/public'
        }
        // 添加Gradle插件仓库的阿里云镜像,这个仓库主要用于Gradle插件的下载
        maven {
            url 'https://maven.aliyun.com/repository/gradle-plugin'
        }
        // 添加Apache Snapshots仓库的阿里云镜像,这个仓库用于下载Apache项目的快照版本
        maven {
            url 'https://maven.aliyun.com/repository/apache-snapshots'
        }
        // 华为开发者仓库
        maven {
            url 'https://developer.huawei.com/repo/'
        }
        // 腾讯镜像仓库
        maven{
            url 'https://mirrors.tencent.com/nexus/repository/maven-public/'
        }
        // Jitpack仓库
        maven {
            url 'https://jitpack.io'
        }
        google {
            content {
                includeGroupByRegex("com\.android.*")
                includeGroupByRegex("com\.google.*")
                includeGroupByRegex("androidx.*")
            }
        }
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        mavenLocal()
        // 配置Maven仓库地址,以提高依赖下载速度
        // 添加中央仓库的阿里云镜像
        maven {
            url 'https://maven.aliyun.com/repository/central'
        }
        // 添加公共仓库的阿里云镜像,这个仓库包含了大量开源项目的发布版本
        maven {
            url 'https://maven.aliyun.com/repository/public'
        }
        // 添加Gradle插件仓库的阿里云镜像,这个仓库主要用于Gradle插件的下载
        maven {
            url 'https://maven.aliyun.com/repository/gradle-plugin'
        }
        // 添加Apache Snapshots仓库的阿里云镜像,这个仓库用于下载Apache项目的快照版本
        maven {
            url 'https://maven.aliyun.com/repository/apache-snapshots'
        }
        // 华为开发者仓库
        maven {
            url 'https://developer.huawei.com/repo/'
        }
        // 腾讯镜像仓库
        maven{
            url 'https://mirrors.tencent.com/nexus/repository/maven-public/'
        }
        // Jitpack仓库
        maven {
            url 'https://jitpack.io'
        }
        google()
        mavenCentral()
    }
}

rootProject.name = "Test"
include ':app'
```

2、较新版本,kts

```
pluginManagement {
    repositories {
        mavenLocal()
        // 配置Maven仓库地址,以提高依赖下载速度
        // 添加中央仓库的阿里云镜像
        maven("https://maven.aliyun.com/repository/central")
        // 添加公共仓库的阿里云镜像,这个仓库包含了大量开源项目的发布版本
        maven("https://maven.aliyun.com/repository/public")
        // 添加Gradle插件仓库的阿里云镜像,这个仓库主要用于Gradle插件的下载
        maven("https://maven.aliyun.com/repository/gradle-plugin")
        // 添加Apache Snapshots仓库的阿里云镜像,这个仓库用于下载Apache项目的快照版本
        maven("https://maven.aliyun.com/repository/apache-snapshots")
        // 华为开发者仓库
        maven("https://developer.huawei.com/repo/")
        // 腾讯镜像仓库
        maven("https://mirrors.tencent.com/nexus/repository/maven-public/")
        // Jitpack仓库
        maven("https://jitpack.io")
        google {
            content {
                includeGroupByRegex("com\.android.*")
                includeGroupByRegex("com\.google.*")
                includeGroupByRegex("androidx.*")
            }
        }
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        mavenLocal()
        // 配置Maven仓库地址,以提高依赖下载速度
        // 添加中央仓库的阿里云镜像
        maven("https://maven.aliyun.com/repository/central")
        // 添加公共仓库的阿里云镜像,这个仓库包含了大量开源项目的发布版本
        maven("https://maven.aliyun.com/repository/public")
        // 添加Gradle插件仓库的阿里云镜像,这个仓库主要用于Gradle插件的下载
        maven("https://maven.aliyun.com/repository/gradle-plugin")
        // 添加Apache Snapshots仓库的阿里云镜像,这个仓库用于下载Apache项目的快照版本
        maven("https://maven.aliyun.com/repository/apache-snapshots")
        // 华为开发者仓库
        maven("https://developer.huawei.com/repo/")
        // 腾讯镜像仓库
        maven("https://mirrors.tencent.com/nexus/repository/maven-public/")
        // Jitpack仓库
        maven("https://jitpack.io")
        google()
        mavenCentral()
    }
}

rootProject.name = "Test"
include(":app")

```

3、较旧的gradle版本(以6.5为例)

```build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        mavenLocal()
        maven {
            url 'https://maven.aliyun.com/repository/central'
        }
        // 添加公共仓库的阿里云镜像,这个仓库包含了大量开源项目的发布版本
        maven {
            url 'https://maven.aliyun.com/repository/public'
        }
        // 添加Gradle插件仓库的阿里云镜像,这个仓库主要用于Gradle插件的下载
        maven {
            url 'https://maven.aliyun.com/repository/gradle-plugin'
        }
        // 添加Apache Snapshots仓库的阿里云镜像,这个仓库用于下载Apache项目的快照版本
        maven {
            url 'https://maven.aliyun.com/repository/apache-snapshots'
        }
        // 华为开发者仓库
        maven {
            url 'https://developer.huawei.com/repo/'
        }
        // 腾讯镜像仓库
        maven{
            url 'https://mirrors.tencent.com/nexus/repository/maven-public/'
        }
        // Jitpack仓库
        maven {
            url 'https://jitpack.io'
        }
        mavenCentral()
        google()
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.0"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        maven {
            url 'https://maven.aliyun.com/repository/central'
        }
        // 添加公共仓库的阿里云镜像,这个仓库包含了大量开源项目的发布版本
        maven {
            url 'https://maven.aliyun.com/repository/public'
        }
        // 添加Gradle插件仓库的阿里云镜像,这个仓库主要用于Gradle插件的下载
        maven {
            url 'https://maven.aliyun.com/repository/gradle-plugin'
        }
        // 添加Apache Snapshots仓库的阿里云镜像,这个仓库用于下载Apache项目的快照版本
        maven {
            url 'https://maven.aliyun.com/repository/apache-snapshots'
        }
        // 华为开发者仓库
        maven {
            url 'https://developer.huawei.com/repo/'
        }
        // 腾讯镜像仓库
        maven{
            url 'https://mirrors.tencent.com/nexus/repository/maven-public/'
        }
        // Jitpack仓库
        maven {
            url 'https://jitpack.io'
        }
        mavenCentral()
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
```

修改完gradle配置后,重新同步工程,会发现工程很快就同步好了

image.png