Android開發中遇到的的Gradle相關問題總結
現在,大家都慢慢開始習慣使用Android Studio來開發Android應用了。
在使用過程中,難免碰到一些Gralde相關的使用問題。下面總結我收集整理的一些碰到的問題,以及解決方案:
1. 問題: Maven源倉庫不可用,或者訪問,下載非常慢。
分析: 由于主要的倉庫Maven,Jcenter都在國外,以及眾所周知的原因,這些Maven倉庫可能比較慢。而我們從新建/導入工程開始,就要和Maven源倉庫進行交互,因此,這可能導致我們導入或者打開工程非常的緩慢。
解決方案:
-
優先使用國內Maven倉庫鏡像。推薦:阿里云Maven倉庫鏡像
maven { url “http://maven.aliyun.com/mvn/repository/“ }
-
使用http協議訪問Maven倉庫。使用下面的倉庫來替換默認的 jcenter() 和 mavenCentral()
jcenter { url “http://jcenter.bintray.com/"} maven { url “http://repo1.maven.org/maven2"}
-
如果你的項目不需要頻繁從Maven倉庫更新/下載組件,那么強烈建議你打開offline模式。
2. 問題: Android Studio導入工程非常慢,甚至卡死在導入階段。
分析:Android Studio導入工程,默認會采用Gradle Wrapper的方式。也就是當你在本地沒有下載過相應版本的Gradle,在導入工程前,就會去嘗試下載相應版本的Gradle。
關于Gradle Wrapper的配置文件,在項目根目錄下gradle/wrapper下。通常是兩個文件:gradle-wrapper.jar和gradle-wrapper.properties
我們來看看gradle-wrapper.properties文件:
#Mon Dec 28 10:00:20 PST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
沒錯,如果你之前沒有通過Gradle Wrapper方式下載過這個版本Gradle,那么你導入工程后,第一件事情就是通過distributionUrl去下載gradle。然而,我們從這個來自Gradle官方的下載地址下載是非常慢的。
解決方案:
1.搭建局域網HTTP服務器,鏡像Gradle主流版本安裝包。
2.在項目根目錄build.gradle配置一個gradle wrapper任務。
task wrapper(type: Wrapper) {
gradleVersion = '3.1'
distributionUrl = "http://android-mirror.bugly.qq.com:8080/gradle/gradle-${gradleVersion}-bin.zip"
}
其中:gradleVersion對應gradle版本號,而distributionUrl則是對應版本的Gradle安裝包下載地址。
3.在根目錄下執行gradle wrapper 命令,然后將根目錄下的gradle目錄提交至git倉庫。
3. 問題: 導入工程后,在Gradle Sync階段卡死。
具體表現為:你以前已經在Android Studio中打開該工程,但是當你升級了本地Gradle版本,又或者使用Intellij IDEA打開,你會發現導入很慢。即使進去主界面,Gradle Sync也會處于假死狀態,好像一直在加載什么。。。
分析: 不明
解決方案:根據網上的建議,排除以上原因之后,你可以這么干:刪除工程下的.gradle文件夾,然后重新導入工程。
來自:http://www.snowdream.tech/2016/11/27/gradle-issues-with-android/