Android Studio Gradle依賴衝突解決方法

這篇文章主要給大家介紹了關於Android Studio Gradle依賴衝突解決的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Android Studio具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

本文主要給大家介紹了Android Studio Gradle依賴衝突解決的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧

1. 查看依賴樹

./gradlew dependencies


2. 解決依賴衝突

一旦在構建中存在依賴衝突,開發人員需要決定哪個版本的庫最終包含在構建中,有許多解決衝突的方法。

1. 逐個排除

compile('junit:junit:4.12'){
 exclude group : 'org.hamcrest',module:'hamcrest-core'
}
//最終,如果我們向包含1.3版本到構建中,我們可以從“mockito"中排除他
androidTestCompile('org.mockito:mockito-core:1.10.19'){
 exclude group : 'org.hamcrest',module:'hamcrest-core'
}

 

2. 顯式依賴

在build.gradle中顯示定義衝突的庫,這是解決衝突的一種方式,在這種情況下,我們需要明確提出我們想要包含在任何一個配置的最終構建中的庫的版本。

compile 'junit:junit:4.12'
androidTestCompile 'org.mockito:mockito-core:1.10.19'
androidTestCompile 'org.hamcrest:hamcrest-core:1.3'

如果多個依賴具有衝突版本的依賴或傳遞依賴的話,則不是從每個依賴性中排除模塊,而是可以簡單的使用期望的版本號來定義衝突依賴。

這種是一種更清潔的解決衝突的方法,但缺點是,當更新實際的依賴關係的時候,開發人員需要更新衝突的庫。

3. 強制依賴

//在app.gradle 中的Android閉包中使用
android{
   configurations.all {
      resolutionStrategy.force 'com.android.support:appcompat-v7:28.0.0'
      resolutionStrategy.force 'com.android.support:support-v4:28.0.0'
      resolutionStrategy.force 'com.android.support:animated-vector-drawable:28.0.0'
      resolutionStrategy.force 'com.android.support:support-media-compat:28.0.0'
   }
}

//在build.gradle 中設置工程全局強制依賴
allprojects{
   configurations.all {
      resolutionStrategy.force 'com.android.support:appcompat-v7:28.0.0'
      resolutionStrategy.force 'com.android.support:support-v4:28.0.0'
      resolutionStrategy.force 'com.android.support:animated-vector-drawable:28.0.0'
      resolutionStrategy.force 'com.android.support:support-media-compat:28.0.0'
   }
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章