解決Gradle中jar衝突

2021-08-19 14:51:57 字數 1293 閱讀 5842

[plain] 

view plain

copy

1.直接在configuration中排除

[plain] 

view plain

copy

configurations  

[plain] 

view plain

copy

dependencies  

}   排除多個jar可以使用多個exclude

3.當然,我們也可以強制使用某個統一的版本。出現衝突時優先使用該版本進行解決

[plain] 

view plain

copy

compile('com.common:lib:1.0')   

4.強制使用某個統一版本的依賴,我們也可以全域性配置

[plain] 

view plain

copy

configurations.all   

}   5.講到這裡,不得不說一下transitive,它是管理以來的傳遞性的,比如com.common:lib:1.0中使用了okhttp,如果可以傳遞,則使用時他會自動為我們加入okhttp,如果不可以傳遞,則需要額外配置okhttp

關閉依賴傳遞

[plain] 

view plain

copy

compile('com.common:lib:1.0')   

也可以採用新增@jar的方式忽略該依賴的所有傳遞性依賴

[plain] 

view plain

copy

compile `com.common:lib:1.0@jar`  

當然也可以全域性配置關閉依賴傳遞

[plain] 

view plain

copy

configurations.all   

6.再講一下動態依賴吧,我們有時候會讓以來的jar始終是最新版本,並且不用每次手動更改版本,我們可以使用

+[plain] 

view plain

copy

compile 'com.common:lib:+'  

當然也可以指定依賴某個大版本下的最新子版本,1.+表示始終採用該依賴最新的1.x版本的最新依賴。

[plain] 

view plain

copy

compile 'com.common:lib:1.+'  

[plain] 

view plain

copy

結束!

本文出自 csdn:

解決Gradle中jar衝突

如果有兩個依賴引用了相同jar包的不同版本時,預設情況下gradle會採用最新版本的jar包,此時可以通過排除選項來排除。首先,看一下依賴乙個庫時的格式,name也就是module dependencies 4.強制使用某個統一版本的依賴,我們也可以全域性配置 configurations.all ...

Gradle解決依賴衝突

問題描述 有時候專案依賴的com.android.support support v4的版本會遇到和其他依賴庫中com.android.support support v4的版本發生衝突的情況。例如我專案中使用的22.2.1版本,但是引入的最新的fresco中依賴的是23的版本,由於fragment...

Jar 包衝突的解決

1.導致jar包衝突的原因 我們在發布應用的時候,有時能正常啟動,有時卻報nosuchmehodexception nosuchfieldexception classnotfoundexception或者nosuchmehoderror noclassdeffounderror,而發布用的war包...