Android Studio 包衝突解決方法

ohanweb123發表於2017-02-16

在為專案加入環信時遇到了包衝突
library:easeui-sdk3.0
環信和原先的專案都使用到了glide,版本不一致,重複引發了衝突
1.如何查詢哪個jar衝突了

a.一般如果衝突了,在編譯的時候就會出現錯誤,根據出現的錯誤就可以知道那個包衝突
b.還有一個方法比較直觀
在專案的.idea->libraries可以看到重複引用,到可能版本不同的包
這裡寫圖片描述
會看到竟然有glide的三個版本,glide_3_6_1是環信的library中的
3.5.2和3.6.0版本是原先專案有的。
其中 3.5.2是我明確引入的,而3.6.0是我原本專案引入的一個library裡面隱式使用的(如何找到這個隱式的使用,下面會介紹)
2.如何解決
第一步、把原先專案顯示使用的3.5.2去掉
如果和library衝突,去除本地原先有的,因為最終library要加入專案中,如果去除library裡,library會直接報錯了。
第二步、查詢隱式使用
開啟Terminal
輸入:

./gradlew -q app:dependencies

app替換成你的module名稱
搜尋glide,會發現,隱藏引用glide那個庫
3.去除重複引用的庫
原先

compile 'com.jph.takephoto:takephoto_library:4.0.0'

改為

compile('com.jph.takephoto:takephoto_library:4.0.0') {
        exclude group: 'com.github.bumptech.glide'
    }

去除com.jph.takephoto:takephoto_library:4.0.0
裡面的glide

相關文章