1. 程式人生 > >Android studio引用包衝突

Android studio引用包衝突

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes

當我們使用android studio新增一些第三方的依賴庫時,很可能會提示上面這個錯誤。

大致意思就是com.android.support的包版本號要保持一致,但是可能我們自己新建的專案的com.android.support包版本號要高一些,一些第三方的庫的com.android.support可能沒有及時更新support庫,就會出現這個錯誤。

解決方法(同樣的適用於其他的依賴衝突。) 
1)修改自己專案中的com.android.support的版本號,與所依賴的庫版本號一致,但是當我們依賴的庫中的com.android.support版本號有好幾個版本就不行了。(不推薦)

2)推薦這種方法,如果發生衝突了,依賴第三方庫時候排除掉對com.android.support包的依賴,這樣自己的專案隨便依賴什麼版本都可以。

group:表示只要包含com.android.support的都排除 
api是android studio3.0中新的依賴方式,對依賴方式還不熟悉的話可以看這篇文章:Android Studio3.0新的依賴方式

例如:

    api("com.afollestad.material-dialogs:core:0.9.5.0") {
        exclude group: 'com.android.support'
    }
  • 1
  • 2
  • 3

module:刪排除group中的指定module 
例如:

    api("com.afollestad.material-dialogs:core:0.9.5.0") {
        exclude group: 'com.android.support', module: 'support-v13'
        exclude group: 'com.android.support'
, module: 'support-vector-drawable' }
  • 1
  • 2
  • 3
  • 4

另外還有一個建議,在我們自己建立library給別人使用時,如果需要依賴com.android.support的話,建議用provided的方式依賴(android studio3.0中更改為compileOnly),這樣只會在編譯時有效,不會參與打包。以免給使用者帶來不便。

例:

    provided 'com.android.support:appcompat-v7:26.1.0'
    provided 'com.android.support:design:26.1.0'
    provided 'com.android.support:support-vector-drawable:26.1.0'
  • 1
  • 2
  • 3

好了,就這些,希望能幫到你。