为什么每次导入新的gradle项目时,Android Studio都要下载gradle?

20
为什么每次我尝试导入一个新项目时,Android Studio都会下载gradle?
最初,我导入了一个gradle项目,自动下载了Gradle 2.1。随后,第二个项目导入时,它下载了Gradle 1.10。现在再次导入第三个项目时,它下载了Gradle 2.2.1。
发生了什么?
5个回答

12

项目可以声明需要哪个Gradle版本来运行(请参阅位于项目根目录下gradle目录中的gradle.properties文件)。

Android Studio会使用此信息下载并运行正确的版本(实际上不是Android Studio,而是在其内部运行的Gradle Wrapper)。这是一件好事。

你可以做什么?

  1. 等待。一旦您在~/.gradle目录中下载了所需版本,它将用于声明相同版本的任何项目。这是一次性缓存。
  2. 在导入项目时禁用wrapper的使用。我非常不建议这样做!因为这可能导致您的项目无法构建。

6
我希望能够管理和下载自己的Gradle版本,每次下载新版本都会消耗太多磁盘空间,因为几乎是重复存储相同的文件... - Ibrahim.H

7

我也遇到了同样的问题。

JBaruch的回答是正确的。

1.- 当你在选项Gradle项目中打开一个文件时:选择你的项目中的build.gradle

2.- 选择“使用本地gradle分发”选项,并在Gradle主目录选项中,进入C:\Program Files\Android\Android Studio\gradle\gradle-2.2.1并进行选择

这样就不会再次要求你下载它(除非需要其他版本)


是的。最近,我正在尝试一些Udacity Nanodegree课程,每当我导入一个新项目时,我对gradle的行为感到非常恼火。但是,“使用本地gradle分发”选项拯救了我。 - Karthick K

3

好的,以下是我通常用来加快打开项目(目标)时初始构建速度的步骤:

1- 打开一个已经工作正常的项目,并打开 gradle-wrapper.properties 文件,复制以下行(你的项目版本可能会不同):

distributionUrl=https://services.gradle.org/distributions/gradle-6.7-bin.zip

2- 粘贴并替换目标项目同一文件上的代码 3- 打开已经工作的项目的build.gradle文件(项目代码)并复制以下classpath(同样,你的项目很可能有不同版本)

dependencies {
    classpath 'com.android.tools.build:gradle:4.2.0-alpha15'
    // ...
}

4- 将其粘贴到目标项目的同一文件中

这样可以加快目标项目的构建速度,并避免通常需要下载大约100Mb Gradle。


3
通常情况下,它会为每个项目下载Gradle更新版本和外部依赖项,而不是从缓存中获取。因此,请按照以下步骤操作:
1. 进入设置 2. 搜索Gradle 3. 取消勾选“下载外部依赖项”选项。
请参考下图操作:Untick Download External Dependencies

2

基本上,它会根据您当前项目的版本下载Gradle构建文件,并且所有这些工作都是由您的gradle wrapper完成的,它实际上会查看您项目的基本要求并根据该要求下载文件,因此每当您要使用任何另一个相同版本或具有相同要求的项目时,它将不会在那个时候下载任何额外的文件。这只是一次性的!


4
不回答问题。 - Pavel Anikhouski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接