1 问题

(1) android sutdio第一次打开一个工程巨慢怎么办? 
(2) 手动配置Gradle Home为什么总是无效? 
(3) 明明已经下载了Gradle,配置了gradle home,为什么打开工程还是去自动下载Gradle?

2 简介

(1) 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版本,这也就是为什么修改Gradle Home失败的原因。那么我们怎么知道gradle有哪些版本呢?答案是下面这个链接:

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

所以只要对着上面的链接,修改后面的gradle版本就可以了.

(2) Gradle保存在哪里? 
Gradle是大家共用的,当然不会把Gradle放在项目文件中(不是不可以),AS将gradle保存在下面的目录: 
Linux:

~/.gradle/wrapper/dists

windows:

C:\users\{user name}\.gradle\wrapper\dists

打开这个目录,可以看到下载好的gradle版本

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

3 配置方法

既然搞清楚了原理,也知道打开慢的原因是卡在下载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版本文件夹下,会发现有一个一串乱码的文件夹,本例以gradle2.4为例,如下图: 

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

(3) 重新开启Android Studio,打开工程,ok,一下子就打开了.

4 Gradle 插件版本

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

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

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

Android Studio手动下载配置Gradle的方法的更多相关文章

  1. Android NDK开发 Android Studio使用新的Gradle构建工具配置NDK环境(一)

    本文主要讲述了如何如何在Android Studio使用新的Gradle构建工具配置NDK环境,现在把相关的步骤整理出来分享给Android程序员兄弟们,希望给他们在配置NDK环境时带来帮助. 从An ...

  2. Android开发之深入理解Android Studio构建文件build.gradle配置

    摘要: 每周一次,深入学习Android教程,TeachCourse今天带来的一篇关于Android Studio构建文件build.gradle的相关配置,重点学习几个方面的内容:1.applica ...

  3. Android Studio系列教程五--Gradle命令详解与导入第三方包

    Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...

  4. Android Studio系列教程四--Gradle基础

    Android Studio系列教程四--Gradle基础 2014 年 12 月 18 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang ...

  5. 【转】Android studio安装与配置

    Android studio安装与配置 1.首先下载Android studio安装包,可以从http://www.android-studio.org/下载最新版本,这里采用3.0版本进行演示,对应 ...

  6. android studio 一直卡在Gradle:Build Running的解决办法

    转:android studio 一直卡在Gradle:Build Running的解决办法   在使用AS开发安卓应用程序的时候经常会遇到Gradle build running一直在运行甚至卡死的 ...

  7. android studio 开发环境配置

    android studio 开发环境配置 参考: 第一次使用Android Studio时你应该知道的一切配置 https://www.cnblogs.com/qianguyihao/p/43909 ...

  8. Android Studio的下载和安装教程(从ADT到AS)

    之前一直使用的是Android development tools(简称ADT),后来说是google对ADT不再提供支持,然后一直在考虑是否把自己电脑换成Android Studio(简称AS),从 ...

  9. [转]Android Studio系列教程六--Gradle多渠道打包

    转自:http://www.stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ Android Studio系列教程六--Grad ...

随机推荐

  1. BZOJ1016最小生成树计数 最小生成树 + 排列组合

    @[最小生成樹, 排列組合] Discription 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的 最小生成树.(如果两颗最小生成树中至少有一条边不 ...

  2. Google代码风格配置文件(Java)(IDEA/Eclipse)

    官网:http://www.cnblogs.com/EasonJim/p/7837474.html 下载: 安装: IDEA/Eclipse导入相应文件即可. 说明: Google代码风格文件的缩进是 ...

  3. MySql常用函数积累

    --MySql查看表结构 select column_name,data_type,CHARACTER_MAXIMUM_LENGTH,column_comment from information_s ...

  4. 简单、强大的swig.js

    Swig.js A simple, powerful, and extendable JavaScript Template Engine. 简单概括:JS模板引擎. Why to use 根据路劲渲 ...

  5. C#对二进制文件的特定位置进行读写小结

    虽然网络上关于“C#对二进制文件进行读写”的文章多如牛毛,但具体到自己要处理的问题时,难免让人产生“书到用时方恨少”和“纸上读来终觉浅”的感觉.我现在感觉要真正解决自己的问题,最终还是要靠自己下功夫. ...

  6. svn 创建分支、切换分支 及 合并分支 操作

    关联远程仓库: 右键  ---  点击 ' SVN Checkout...' 生成 打开trunk目录,在trunk目录下新建两个文本文件A.java,B.java: 打开A.java输入以下内容: ...

  7. webRequest模块的解读

    Chrome Extension 的 webRequest模块的解读   文档在此:http://developer.chrome.com/trunk/extensions/webRequest.ht ...

  8. v-on指令

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. mysql limit分页优化方法分享

    同样是取10条数据  select * from yanxue8_visit limit 10000,10 和  select * from yanxue8_visit limit 0,10  就不是 ...

  10. SequenceFileInputFormat区别TextInputFormat

    通过InputFormat,Hadoop可以: l           检查MapReduce输入数据的正确性: l           将输入数据切分为逻辑块InputSplit,这些块会分配给Ma ...