1. 程式人生 > >Bug 日誌之Failed to resolve: com.android.support:appcompat-v7:27.+

Bug 日誌之Failed to resolve: com.android.support:appcompat-v7:27.+

一、問題描述

使用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

在這裡插入圖片描述