首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >APK app-debug-unaligned.apk打包过程中文件重复

APK app-debug-unaligned.apk打包过程中文件重复
EN

Stack Overflow用户
提问于 2014-08-25 18:01:17
回答 5查看 26.6K关注 0票数 49

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

  • httpclient-4.3.5.jar
  • httpmime-4.3.5.jar

Run.和Sync with Gradle之后放入libs文件夹

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

请帮助我如何避免这个错误&仍然可以使用上面的两个jar文件,

谢谢,

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

Error Detail

错误:打包存档中的APK路径时出现重复文件: META-INF/DEPENDENCIES Origin1:...\app\libs\httpclient-4.3.5.jar Origin2:...\app\libs\httpmime-4.3.5.jar

build.gradle

代码语言:javascript
复制
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 Link。在把两个maven链接放在一起后,我又得到了同样的错误:

代码语言:javascript
复制
    compile 'org.apache.httpcomponents:httpmime:4.4-alpha1'
compile 'org.apache.httpcomponents:httpcore:4.4-alpha1'

这是警告

Android警告: debug忽略Dependency org.apache.httpcomponents:httpclient:4.4-alpha1,可能与

提供的内部版本冲突。如果出现问题,请使用jarjar重新打包,以更改类包

警告: release org.apache.httpcomponents:httpclient:4.4-alpha1在发布时被忽略,可能与安卓提供的内部版本冲突。如果出现问题,请使用jar重新打包,以更改类包

请帮我修一下。

解决方案我现在知道了一个很好的答案,通过添加以下几行代码,可以修复Duplicate files错误:

代码语言:javascript
复制
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'
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-08-25 18:25:17

您可以用这个编译后的'org.apache.httpcomponents:httpmime:4.3.5'替换compile files('libs/httpmime-4.3.5.jar')

此外,您还复制了compile fileTree(include: ['*.jar'], dir: 'libs')已包含compile files('libs/httpmime-4.3.5.jar')的依赖项

票数 10
EN

Stack Overflow用户

发布于 2015-12-09 19:12:30

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

代码语言:javascript
复制
android{
    .
    .
    .
    packagingOptions {
        exclude 'META-INF/license.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/NOTICE'
    }
}

这将修复此错误。我得到了相同的错误,这样做修复了它。

票数 8
EN

Stack Overflow用户

发布于 2015-09-24 14:39:23

请将此更新为您的build.gradle文件。

代码语言:javascript
复制
    packagingOptions { 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25483410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档