今天在项目打包的时候出现这个问题,在项目运行的时候没有出现任何异常,但是在打正式包的时候出现了这个问题,这
个问题就是我们在依赖第三方包的时候出现的依赖包重复的问题:报错如下:
Error:Execution failed for task ':app:transformClassesWithJarMergingForRelease'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/zxing/aztec/AztecDetectorResult.class
下面开始进行解决:
1:双击Shift搜索报错的AztecDetectorResult.class这个类,然后看到有两个库中包含同一个类,其实是两个库中都包含了通一个
如下com.google.zxing的包引用了两个,这就直接导致打正式包的时候出现问题。但是运行的时候就不会有问题。
2:我们看到,在引用cn.yipianfengye.android:zxing-library-22这个库的主要功能就是使用Zxing,和它冲突的这下面的这个
依赖就是Zxing 的核心库:
//扫码
implementation 'com.google.zxing:core:3.3.0'
3:删除下面这个库:
compile 'cn.yipianfengye.android:zxing-library:2.2'//这个库和官方的zxing的库是有冲突的
4:clean 一下项目重新打包就可以了。
*********************************************分割线*****************************************************
上面的问题只能解决简单的这种重复依赖,比如两个依赖都有不同的功能,而且没有包含关系的时候怎么解决呢?
1:在AS中,选择以project显示项目,找到最下面的External Libraries,然后继续找,找到相对应的类库
打开pom.xml这个文件:
2:在这个文件中找到如下:
<parent>
<groupId>com.google.zxing</groupId>
<artifactId>zxing-parent</artifactId>
<version>3.3.2</version>
</parent>
对!就是com.google.zxing这个包导致的重复
3:找到引用闭包的地方添加如下,把groupId添加如下:
//扫码
implementation ('xxx这是你引用的两个依赖中的其中一个依赖名xxx'){exclude group: 'com.google.zxing'}
4:clean一下项目重新运行一般就可以了