Android Studio 包衝突解決方法
阿新 • • 發佈:2019-01-02
在為專案加入環信時遇到了包衝突
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