問題
Android Studio目前已經更新到2.0 Preview 6了,作為Google大力推崇的開發工具,相對於Eclipse ADT有着不可比擬的優勢。然而在實際使用時,依然有不少不爽的地方。Android Studio原生支持使用Gradle來構建項目本是個不錯的想法,使用動態語言Groovy定義項目構建過程,避免了build.xml文件的繁瑣定義。但是Gradle的二進制包體積較大,而且用戶可能按照了不同的Gradle版本,構建時可能會出現各種問題。因此又提出了Gradle Wrapper這么個東西,用於解決前面出現的問題。Gradle Wrapper會綁定到一個指定的Gradle版本。當用戶導入項目工程時,會自動到遠程服務器上下載Gradle包。這樣解決了客戶端版本不一致的問題,但是也帶來了一個新的問題:國內連接到遠程服務器下載Gradle包的速度非常慢!所以,每當從Github下載下來一個新項目導入到Android Studio時,都會卡在這個界面:
你不知道到底是AS死了,還是它確實在后台做些什么……要么就耐着性子等,要么就直接關掉AS,而且必須是強制關閉。這一點做的非常不友善。實際上,之所以卡在這,就是因為后台在服務器下載Gradle包。而這個Gradle包往往有幾十兆,在網絡環境不太好的情況下,可能要下很久才能完成。顯然,我們沒有這么多時間在這耗着,需要找個辦法來解決了。
解決方法
在網絡上搜羅了一番,通常的做法是修改Gradle Wrapper配置文件中的Gradle版本,但是都不太完整。最后在這里看到了完整點的解決方法。精簡下主要如下幾個步驟:
- 先獲取本機相關參數,包含如下幾個(括號中是我本人機器的參數):
-
Android Plugin Version:(1.5.0)
-
Gradle Version:(2.8)
-
Compile SDK Version:(23)
-
Build Tools Version:(23.0.2)
- GradleHome:(/Applications/Android Studio.app/Contents/gradle/gradle-2.8)
-
獲取方法很簡單,在Android Studio里面新建一個工程,單擊工程名右鍵選擇“Open Module Settings”彈出對話框中可以看到:
2. 參數准備好了,即可開始修改目標項目的參數。需要修改的參數位於哪些文件呢?
-
- xxx-project/.idea/gradle.xml文件:添加或修改<option name="gradleHome" value="前面的GradleHome參數" />
- xxx-project/gradle/wrapper/gradle-wrapper.properties文件:distributionUrl=https\://services.gradle.org/distributions/gradle-前面的gradleVersion-all.zip
- xxx-project/build.gradle文件:classpath 'com.android.tools.build:gradle:前面Android Plugin Version' (這個是整個project的配置)
- xxx-project/build.gradle文件:修改Compile SDK Version和Build Tools Version參數。(這個是單個module的配置,project中每個module都需要修改)
3. 參數修改完成,開始正式導入項目。一般情況下,這時候可以很順利的就導入到Android Studio中來了。如果仍然卡在導入界面,那么只能乖乖的等了……