Error:Execution failed for task ':app:transformClassesWithJarMergingForRelease'...$LayoutParams.clas

说明:

    AndroidStudio打包混淆出错:

    1、混淆下报错

Warning:Exception while processing task java.io.IOException: Can't write [E:\project-gitosc\pet\Pet-Android\...\app\build\intermediates\transforms\proguard\release\jars\3\1f\main.jar] (Can't read [C:\Users\BF100232\.android\build-cache\9ea435c6c64b596437b8a78dad29fee1b093231b\output\jars\classes.jar(;;;;;;**.class)] (Duplicate zip entry [classes.jar:android/support/design/widget/CoordinatorLayout$LayoutParams.class]))

    2、未混淆下报错

Error:Execution failed for task ':app:transformClassesWithJarMergingForRelease'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/design/widget/CoordinatorLayout$LayoutParams.class

    其实都是报错的一个意思,只不1是打开了混淆,2是关闭了混淆

原因:

    网上搜索原因肯定是包重复,但是问题是我的那个包重复???(解决了好长时间)

    1、通过Ctrl+N搜索 CoordinatorLayout会发现在下面两个jar包中有这个类design-26.0.0-alpha1support-core-ui两个包里面包含了这个类。

       design-26.0.0-alpha1这个类我知道是我在compile 'com.android.support:design:26.0.0-alpha1'中引用的,但是support-core-ui我找了好久,就是不知道是哪个第三方包引入的。

    2、通过一个一个的去找到还是没找到,通过查看jar包目录结构最终还是只是查到了support-core-ui(如下图结果,具体不指定了),还是没有查到是哪个包引用的。(崩溃~~~两天了)


    3、最后换了一种思维,通过错误可以确认是support/design/widget这个包被重复引用了,但是确定不了另外一个位置。那么就把所有引入的包都加上exclude group: 'com.android.support',这样最终打包成功了。

 //图片加载
    //compile 'com.github.bumptech.glide:glide:3.7.0'
    compile ('com.github.bumptech.glide:glide:4.3.1') {
        exclude group: 'com.android.support'
    }
    annotationProcessor ('com.github.bumptech.glide:compiler:4.3.1') {
        exclude group: 'com.android.support'
    }
    //图片放大缩小旋转
    //-图片列表查看器-列表到全图无缝查看
    compile ('com.github.Hitomis.transferee:Transferee:v1.1.0') {
        exclude group: 'com.android.support'
    }
    compile ('com.github.Hitomis.transferee:GlideLoader:v1.1.0') {
        exclude group: 'com.android.support'
    }
    //-单张图片显示查看器-详情页大图查看
    compile ('com.github.chrisbanes:PhotoView:1.2.6') {
        exclude group: 'com.android.support'
    }
    //图片剪切
    compile ('com.github.yalantis:ucrop:2.2.1') {
        exclude group: 'com.android.support'
    }

        然后再一个一个删除exclude group: 'com.android.support',最具体终确认是哪个包具体引入了(笨方法解决问题)。



猜你喜欢

转载自blog.csdn.net/u012246458/article/details/79446784