在項目中導入jar包或者aar包時會碰到許多無頭緒的包衝突,細查之下我們會發現,app/build下導入的包與引入的module下的包衝突的解決方法
1、項目引入v4包和v7包,因爲v7包裏面包含了v4包,所以導致衝突
解決方案:
compile('com.android.support:appcompat-v7:23.3.0') {
exclude module: 'support-v4'
}
默認情況下v7中是包含V4包的,exclude 的意思就是從v7包中去除v4包這樣就可以解決衝突
2、引入的module中有v4包,然後主module又有v4包,如果你不想刪除任何一個v4包,或者其他情況不能把其中的一jar包刪除,這時候就要注意compile 和 provided 的區別了:
compile :jar包/依賴代碼 在編譯的時候需要依賴,在運行的時候也需要
provided : jar包/依賴代碼 僅在編譯的時候需要,但是在運行時不需要依賴
也就是說,你只要吧其中任意一個改爲provided就可以了
如:provided files('libs/Alipay.jar)
同時,你還要做一步處理:
去掉這行的jar包的引入
compile fileTree(include: ['*.jar'], dir: 'libs')