Android Studio 配置Gradle总结

一, 问题:

①换个新电脑安装完Android Sutdio第一次打开一个工程巨慢怎么办?
② 手动配置Gradle Home为何老是无效?
③ 明明已经下载了Gradle,配置了gradle home,为何打开工程仍是去自动下载Gradle?android

二 简介

(1) Android Studio怎么知道该用哪一个Gradle呢?
AS一个项目所用的Gradle是由咱们的工程中下面这个文件决定的:
{your project}/gradle/wrapper/gradle-wrapper.properties
文件内容以下:web

#Thu May 11 16:43:55 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

这里写图片描述

最后一排的distributionUrl 决定了这个项目使用的gradle版本,也就是说不一样的项目可使用不一样的gradle版本,这也就是为何修改Gradle Home失败的缘由。
那么咱们怎么知道gradle有哪些版本呢?答案是下面这个连接:windows

Gradle下载地址:https://services.gradle.org/distributions/app

因此只要对着上面的连接,修改后面的gradle版本就能够了.svg

(2) Gradle保存在哪里?
Gradle是你们共用的,固然不会把Gradle放在项目文件中(不是不能够),AS将gradle保存在下面的目录:
Linux: ~/.gradle/wrapper/dists
Windows:C:\users\{user name}\.gradle\wrapper\dists
如何查看本身电脑该文件地址:
若是是windows 打开AS-Setting(Ctrl+Shift+S)找到Gradle便可查看路径,以下图:这里写图片描述gradle

根据这个路径去本地查找文件:
这里写图片描述ui

Android Studio打开一个工程时,首先会读取gradle-wrapper.properties 文件,从而知道这个工程须要哪一个版本的gradle ,而后就会去保存gradle的文件夹GRADLE_USER_HOME 去找看存不存在这个版本的gradle,不存在则会去distributionUrl 去下载
搞清楚了这个流程,如今是否是明白了,为何第一次打开一个工程会巨慢了吧,由于AS会去下载gradle。为何我明明下载了gradle,也指定了gradle的存放目录,可打开的时候仍是会去自动下载gradle了,那是由于你没有配对地方。如今回过来看项目配置文件是否是gradle/wrapper/gradle-wrapper.properties 是否是恍然大悟?spa

三,配置方法

既然搞清楚了原理,也知道打开慢的缘由是卡在下载gradle这一步,那么咱们就本身下载gralde,而后配置上去
(1) 修改gradle-wrapper.properties
修改gradle-wrapper.properties 中的 distributionUrl,改为咱们想要的版本,只改后面的版本就能够了,前面的部分不要改。具体版本看下面连接:.net

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版本文件夹下,会发现有一个一串乱码的文件夹,本例以gradle3.5为例,以下图:
这里写图片描述

这里写图片描述

(2) 下载gradle
从上面的Gradle下载地址,下载对应版本的gradle,本例中为gradle-3.5-all.zip,而后删除上图中的gradle-3.5-all.zip.part文件,将下载的gradle-3.5-all.zip复制到上图中一串乱码的文件夹下,注意不要解压。这样咱们就跳过了下载gradle这一步。

(3) 从新开启Android Studio,打开工程,ok,一会儿就打开了.

四 ,Gradle 插件版本

gradle插件和gradle是两个独立的东西,gradle插件版本是由项目最外层的build.gradle文件决定的
app/build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

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

修改gradle插件版本以后,sync一下代码就能够了。

gradle和(android gradle插件)必定不能混为一谈,2者是有区别的。android gradle插件依赖于gradle。
1.gradle的配置
当咱们在setting下gradle下设置gradle选择“use defalut gradle wrapper(recommended)”
时,as就会根据{project.dir}\gradle\wrapper\gradle-wrapper.properties文件中的配置去gradle
这里写图片描述

最后特别感谢本文做者细心整理,本文转载自http://blog.csdn.net/fuchaosz/article/details/51567808