Bug 日誌之Failed to resolve: com.android.support:appcompat-v7:27.+
阿新 • • 發佈:2018-11-13
一、問題描述
使用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