support-v4、support-v7 的依賴關係及 Getting java.util.zip.ZipException: duplicate entry exception 的處理
阿新 • • 發佈:2018-12-31
最近在編譯專案時,多次出現了 java.util.zip.ZipException: duplicate entry exception android/support/vX/.../xxx.class 異常;
該異常是由於多個 module 或 第三方庫(這個是主要原因)引用了不同版本的 support 庫引起的;為了解決這個問題順帶把 Android support 庫和
幾個第三方庫的依賴關係整理如下:
1.support-v7 的依賴關係
compile ("com.android.support:appcompat-v7:$SUPPORT_APPCOMPAT_V7_VERSION" ){
exclude group:'com.android.support',module:'support-v4'
exclude group:'com.android.support',module:'support-annotations'
exclude group:'com.android.support',module:'support-compat'
exclude group: 'com.android.support', module: 'support-vector-drawable'
exclude group :'com.android.support',module:'animated-vector-drawable'
}
compile ("com.android.support:recyclerview-v7:$SUPPORT_RECYCLERVIEW_V7"){
exclude group:'com.android.support',module:'support-annotations'
exclude group:'com.android.support',module:'support-compat'
exclude group :'com.android.support',module:'support-core-ui'
}
2.support-v13 的依賴關係
compile ("com.android.support:support-v13:$SUPPORT_V13"){
exclude group:'com.android.support',module:'support-v4'
exclude group:'com.android.support',module:'support-annotations'
exclude group:'com.android.support',module:'support-compat'
exclude group:'com.android.support',module:'support-core-ui'
exclude group:'com.android.support',module:'support-core-utils'
exclude group:'com.android.support',module:'support-fragment'
exclude group:'com.android.support',module:'support-media-compat'
exclude group: 'com.android.support', module: 'recyclerview-v7'
}
3.transition 的依賴關係
compile ("com.android.support:transition:$TRANSITION_VERSION"){
exclude group:'com.android.support',module:'support-v4'
exclude group:'com.android.support',module:'support-annotations'
exclude group:'com.android.support',module:'support-compat'
exclude group:'com.android.support',module:'support-core-ui'
exclude group:'com.android.support',module:'support-core-utils'
exclude group:'com.android.support',module:'support-fragment'
exclude group:'com.android.support',module:'support-media-compat'
exclude group:'com.android.support',module:'animated-vector-drawable'
}
4.design 的依賴關係
compile("com.android.support:design:$DESIGN_VERSION") {
exclude group:'com.android.support',module:'support-v4'
exclude group:'com.android.support',module:'support-annotations'
exclude group:'com.android.support',module:'support-compat'
exclude group:'com.android.support',module:'support-core-ui'
exclude group:'com.android.support',module:'support-core-utils'
exclude group:'com.android.support',module:'support-fragment'
exclude group:'com.android.support',module:'support-media-compat'
exclude group:'com.android.support',module:'animated-vector-drawable'
exclude group: 'com.android.support', module: 'support-vector-drawable'
exclude group: 'com.android.support', module: 'transition'
exclude group:'com.android.support',module:'appcompat-v7'
exclude group: 'com.android.support', module: 'recyclerview-v7'
}
5.constraint 的依賴關係
compile ('com.android.support.constraint:constraint-layout:1.0.2'){
exclude group:'com.android.support',module:'support-v4'
}
6.multidex 的依賴關係
compile ("com.android.support:multidex:$SUPPORT_MULTIDEX"){
exclude group:'com.android.support',module:'support-v4'
}
7.com.yuyh.imgsel(github上一圖片選擇器) 的依賴關係
compile ('com.yuyh.imgsel:library:1.3.8'){
exclude group:'com.android.support',module:'support-v4'
exclude group:'com.android.support',module:'support-annotations'
exclude group:'com.android.support',module:'animated-vector-drawable'
exclude group: 'com.android.support', module: 'support-vector-drawable'
exclude group:'com.android.support',module:'appcompat-v7'
exclude group: 'com.android.support', module: 'recyclerview-v7'
}
8.ch.acra 的依賴關係
compile ('ch.acra:acra:4.9.1'){
exclude group:'com.android.support',module:'support-annotations'
exclude group:'com.android.support',module:'support-v4'
}
參考資料
關於 support-v4、support-v7 內部的構成可以看下面兩篇 blog :