com.android.builder.packaging.DuplicateFileException

来源:互联网 发布:linux 修改用户权限组 编辑:程序博客网 时间:2024/06/05 05:44

你打包的时候是不是遇到过这种情况:

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE    File1: C:\Users\lion\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpmime\4.5.2\22b4c53dd9b6761024258de8f9240c3dce6ea368\httpmime-4.5.2.jar    File2: C:\Users\lion\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore\4.4.5\e7501a1b34325abb00d17dde96150604a0658b54\httpcore-4.4.5.jar

出现这个错误,说明引入的jar包中出现了重复的META-INF文件导致无法合并。解决方法也很简单,在你报错的模块的build.gradle中添加如下配置即可解决这个错误:

android {    ...    //为了解决部分第三方库重复打包了META-INF的问题    packagingOptions {        exclude 'META-INF/LICENSE.txt'        exclude 'META-INF/LICENSE'    }}

我们来自己看下上面报的这个错误:

> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE

这个错误说的是META-INF/LICENSE中有重复导致无法打包,其他的情况类似,如果报错出现其他的文件,我们只需要在packagingOptions中添加忽略文件即可。下面是一套常用的配置:

android {    ...    //为了解决部分第三方库重复打包了META-INF的问题    packagingOptions {        exclude 'META-INF/LICENSE.txt'        exclude 'META-INF/NOTICE.txt'        exclude 'META-INF/license.txt'        exclude 'META-INF/LICENSE'        exclude 'META-INF/notice.txt'        exclude 'META-INF/NOTICE'        exclude 'META-INF/DEPENDENCIES.txt'        exclude 'META-INF/DEPENDENCIES'    }}

希望能够帮到你。

0 0
原创粉丝点击