support-v4、support-v7 的依赖关系及 Getting java.util.zip.ZipException: duplicate entry exception 的处理

最近在编译项目时,多次出现了 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 :

Android Support Library详细介绍
Android Support兼容包详解

备注

如何查看依赖关系请看这篇 Android studio 如何查看 library 间的依赖关系

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值