问题
(1) Android sutdio第一次打开一个工程巨慢怎么办?
(2) 手动配置Gradle Home为什么总是无效?
(3) 明明已经下载了Gradle,配置了gradle home,为什么打开工程还是去自动下载Gradle?
需要解决上面问题,需要了解一下知识。
Android Studio怎么知道该用哪个Gradle呢?
AS一个项目所用的Gradle是由我们的工程中下面这个文件决定的:
{your project}/gradle/wrapper/gradle-wrapper.properties
#Mon Sep 28 16:15:03 CST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
最后一排的distributionUrl 决定了这个项目使用的gradle版本,也就是说不同的项目可以使用不同的gradle版本
原理:Android Studio打开一个工程时,首先会读取gradle-wrapper.properties 文件,从而知道这个工程需要哪个版本的gradle ,然后就会去保存gradle的文件夹GRADLE_USER_HOME 去找看存不存在这个版本的gradle,不存在则会去distributionUrl 去下载 搞清楚了这个流程,现在是不是明白了,为什么第一次打开一个工程会巨慢了吧,因为AS会去下载gradle。
既然搞清楚了原理,也知道打开慢的原因是卡在下载gradle这一步,那么我们就自己下载gralde,然后配置上去 。
(1) 修改gradle-wrapper.properties
修改gradle-wrapper.properties 中的 distributionUrl,改成我们想要的版本,只改后面的版本就可以了,前面的部分不要改。具体版本看下面链接:
Gradle下载地址:https://services.gradle.org/distributions/
(2) 打开项目
这个时候AS将自动下载gradle,并创建好目录。这时直接干掉Android Studio并退出,因为这一步是为了得到AS自动创建的下载目录,定位到下面的目录:
Linux:
~/.gradle/wrapper/dists
windows:
C:\users\{user name}\.gradle\wrapper\dists
注意:Gradle是大家共用的,所以当然不会把Gradle放在项目文件中(不是不可以)
接着进入对应的gradle版本文件夹下,会发现有一个一串乱码的文件夹
(3) 下载gradle
从上面{your project}/gradle/wrapper/gradle-wrapper.properties
文件中的Gradle下载地址,下载对应版本的gradle,建议使用下载器进行下载,例如迅雷,本例中为gradle-2.4-all.zip,将下载的gradle-2.4-all.zip复制到上图中一串乱码的文件夹下,注意不要解压。这样我们就跳过了下载gradle这一步。
(4) 重新开启Android Studio,打开工程,ok,一下子就打开了.
另外,需要注意的是,gradle插件和gradle是两个独立的东西,gradle插件版本是由项目最外层的build.gradle文件决定的