標籤:
問題
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 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中來了。如果仍然卡在匯入介面,那麼只能乖乖的等了……
參考
- http://ju.outofmemory.cn/entry/229755
- https://docs.gradle.org/current/userguide/gradle_wrapper.html
Android Studio匯入項目非常慢的解決辦法