Android 多module依賴版本沖突解決
當(dāng)項(xiàng)目使用模塊化開發(fā)的時(shí)候槐瑞,尤其是迭代開發(fā)对扶,新的module的使用的更高版本的第三方依賴庫,當(dāng)app 引用module 的時(shí)候,可能引發(fā)依賴版本的代碼沖突是整,這個(gè)該怎么解決呢瞧剖?
比如:
我創(chuàng)建了一個(gè)module :common
common 里面有編寫了一個(gè)GlideUtils 需要引用
implementation "com.github.bumptech.glide:glide:4.12.0"
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
這里使用的glide是 4.0+ 版本
但是app 老代碼之前依賴了了3.0+ 的glide
implementation "com.github.bumptech.glide:glide:3.7.0"
有大量的舊代碼:
Glide.with(mContext)
.load("")
.into(new SimpleTarget<GlideDrawable>() {
@Override
public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
}
});
在4.0 中回調(diào)是這樣的:
Glide.with(this).load("").into(new SimpleTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<?
super Drawable> transition) {
}
});
如果一個(gè)個(gè)的改不現(xiàn)實(shí)拭嫁,最好的辦法就是在app 中使用3.0 而不使用common 中的4.0 版本glide
解決辦法
在app 的依賴引用加上這樣的注明,去除相關(guān)依賴:
implementation (project(':common')){
exclude group: 'com.github.bumptech.glide'
}
需要注意的是
project(':common')
外層要加一個(gè) ()