使用Android Studio(版本2.3.3)新建了一個測試項目,隨後編譯無法通過,直接報錯
錯誤分析
通過日誌信息,我們很容易就能定位到問題代碼
compile 'com.android.support:appcompat-v7:27.+'
這是一種很正常的寫法,當我們需要一個library時,我們就能通過compile方式在Maven倉庫服務器上去下載我們需要的library,而Android Studio 的默認倉庫是jcenter,即
allprojects {
repositories {
jcenter()
}
}
那爲什麼還會添加失敗呢?那是因爲在jcenter上並沒有v7:27.+的library,我們使用的support:appcompat-v7的依賴都是我們sdk本身提供的。
如果sdk沒有相應的library我們該怎麼辦?很簡單,除了jcenter和Maven Central這兩種標準的Android library倉庫外,我們還可以定義自己特有的Maven倉庫服務器來存放library,例如我們能夠從google自己的倉庫裏來下載v7:27.+library
maven { url "https://maven.google.com" }
解決方案
好了,既然我們知道了產生問題的原因,那麼解決方法也就好說了,第一種方法即在我們的buile.gradle中添加谷歌倉庫
allprojects {
repositories {
jcenter()
// 使用google的倉庫
maven { url "https://maven.google.com" }
}
}
第二種方法直接將我們的com.android.support:appcompat-v7版本調低即可,因爲我們自己的sdk裏就包含着v7:26+的library
compile 'com.android.support:appcompat-v7:26.+'
第三種方法升級我們的Android Studio到3.2版本,我試了試,沒有這個問題,因爲gradle在編譯的時候已經替我們下載好了需要的v7:27+的library