天天看點

Androidstudio打開巨慢的問題-解決方案Mon Sep 28 16:15:03 CST 2015

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

1

2

3

4

5

6

1

2

3

4

5

6

最後一排的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
}
           

}

1

2

3

4

5

6

7

8

9

10

11

1

2

3

4

5

6

7

8

9

10

11

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