在APK app-debug-unaligned.apk的打包过程中复制文件

我得到这个错误Duplicate files during packaging of APK app-debug-unaligned.apk时, Duplicate files during packaging of APK app-debug-unaligned.apk放2个jar文件时:

  • httpclient-4.3.5.jar

  • httpmime-4.3.5.jar

    Sync with GradleRun之后进入libs文件夹。

如果用户1的jar文件 – httpmime-4.3.5.jar ,我不会得到这个错误。

请帮助我如何避免这个错误,在上面还可以使用2个jar文件,

谢谢,

p / s:我使用Android Studio版本0.8.6。

Error Detail

错误:APK打包过程中出现重复文件… \ app \ build \ outputs \ apk \ app-debug-unaligned.apk归档path:META-INF / DEPENDENCIES原始码1:… \ app \ libs \ httpclient-4.3 .jar Origin 2:… \ app \ libs \ httpmime-4.3.5.jar

build.gradle

 android { compileSdkVersion 20 buildToolsVersion '20.0.0' defaultConfig { applicationId 'com.app' minSdkVersion 9 targetSdkVersion 20 versionCode 1 versionName '1.0' } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { } packagingOptions { exclude 'META-INF/LICENSE.txt' } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:support-v4:20.0.0' compile 'com.android.support:appcompat-v7:20.0.0' compile 'com.google.android.gms:play-services:5.2.08' compile 'com.viewpagerindicator:library:2.4.1@aar' compile 'de.hdodenhof:circleimageview:1.2.0' compile files('libs/httpmime-4.3.5.jar') } 

UPDATE我从compile files('libs/httpmime-4.3.5.jar')更改为使用Maven的链接。 把2个maven链接放在一起后我又得到了同样的错误:

  compile 'org.apache.httpcomponents:httpmime:4.4-alpha1' compile 'org.apache.httpcomponents:httpcore:4.4-alpha1' 

这是警告

警告:依赖org.apache.httpcomponents:httpclient:4.4-alpha1被忽略debugging,因为它可能与Android提供的内部版本冲突。 如有问题,请用jarjar重新包装,以更改课程包

警告:依赖org.apache.httpcomponents:httpclient:4.4-alpha1在发布时会被忽略,因为它可能与Android提供的内部版本冲突。 如有问题,请用jar子重新包装,以改变课程包

请帮我修复。

目前我知道很好的答案现在通过添加这些行将修复Duplicate files错误:

 packagingOptions { exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt' exclude 'META-INF/LGPL2.1' } 

你可以用这个编译'org.apache.httpcomponents:httpmime:4.3.5'replacecompile files('libs/httpmime-4.3.5.jar')

你也复制了依赖项compile fileTree(include: ['*.jar'], dir: 'libs')已经包含了compile files('libs/httpmime-4.3.5.jar')

更新您的build.gradle并添加以下行

 android{ . . . packagingOptions { exclude 'META-INF/license.txt' exclude 'META-INF/LICENSE' exclude 'META-INF/notice.txt' exclude 'META-INF/NOTICE' } } 

这将解决这个错误。 我得到了同样的错误,这样做解决了它。

请更新这个到你的build.gradle文件。

  packagingOptions { exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' } 

我更新了gradle现在它正在工作

packagingOptions {不包括'META-INF / DEPENDENCIES'排除'META-INF / LICENSE'排除'META-INF / LICENSE.txt'排除'META-INF / NOTICE.txt'}

将下面的代码添加到依赖关系

编译组:'org.apache.httpcomponents',名称:'httpclient-android',版本:'4.3.5'编译(组:'org.apache.httpcomponents',名称:'httpmime',版本:'4.3.5 '){排除模块:'org.apache.httpcomponents:httpclient'}

现在如果你运行它,它会告诉你为什么它告诉重复可能是因为META-INF / NOTICE,META-INF / LICENSE,再加上先运行它可能会显示其他types。 添加所有类似下面的android部分packagingOptions {排除'META-INF / LICENSE.txt'排除'META-INF / NOTICE'排除'META-INF / LICENSE'}

绝对会解决你的问题。

在构build之前从系统中删除所有依赖文件。