Failed to resolve: com.android.support:support-annotations:26.0.2的解決方案
在新增依賴的時候,出現如下報錯:
說我缺少了support-annotations:26.0.2的依賴,那麼問題來了,什麼是support-annotations?我的專案裡面用到了嗎?
support-annotations註解庫簡介
android-support-annotations是Android官方提供的一個註解庫,它提供了許多有用的註解,你能用它們修飾你的程式碼,幫助你發現bug,這些註解的生命週期為原始碼時期,也就是在編譯之後則不再保留,通常用於輔助程式碼上的靜態檢查。
此處關於輔助程式碼檢查我們舉個例子,@NonNull這個註解大家應該都不陌生,@NonNull註解能被用來標註給定的引數或者返回值不能為null,如果一個本地變數的值為null(比如因為過早的程式碼檢查它是否為null),而你又把它作為引數傳遞給了一個方法,並且該方法的引數又被@NonNull標註,那麼IDE會提醒你,你有一個潛在的崩潰問題。
support-annotations註解庫預設是沒有包含的,他們被包裝成一個獨立的庫,如果需要我們要去手動引入,在Gradle中引入這個庫的方式通常如下:
compile 'com.android.support:support-annotations:23.1.1'
但是如果你已經通過這種方式依賴了support-v4庫的話,則不必再顯式宣告依賴它,因為support-v4也依賴於這個庫,由於Gradle的傳遞依賴的特性,你的專案如果依賴了support-v4庫的話,也會依賴到這個註解庫。
然後檢視自己app的build.gradle檔案,發現專案已經依賴了support-v4庫了啊,按照上面所說的,如果依賴了support-v4庫,也就同時依賴了support-annotations註解庫,但是為什麼還是會報異常呢?
同樣的上面之前的做法,直接在gradle檔案引入註解庫的做法也是解決不了問題的,原因如下:
原因分析和解決
support annotations自25.4.0之後support包不在sdk中更新了,需要用谷歌的maven庫,在Project的build.gradle中新增如下谷歌的地址,因此需要我們手動的在Project的build.gradle中新增如下谷歌的地址:
allprojects {
repositories {
...
//需要新增的部分,兩個倉庫新增其一即可解決
maven { url "https://maven.google.com" }
maven { url "https://dl.google.com/dl/android/maven2/"}
...
}
}
這樣異常就完美解決了。