在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 Gradle
并Run
之后进入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之前从系统中删除所有依赖文件。