错误:任务执行失败':app:packageAllDebugClassesForMultiDex'java.util.zip.ZipException:重复项:com / amazonaws / auth / [英] Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex' java.util.zip.ZipException: duplicate entry: com/amazonaws/auth/

查看:139
本文介绍了错误:任务执行失败':app:packageAllDebugClassesForMultiDex'java.util.zip.ZipException:重复项:com / amazonaws / auth /的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在我的项目中使用Amazon AWS服务。我已经添加了依赖关系;该项目建立良好。
当我在手机上运行应用程序时,出现以下错误:

 错误:执行任务失败:app :packageAllDebugClassesForMultiDex。 
> java.util.zip.ZipException:重复条目:com / amazonaws / auth / NoOpSigner.class

当我启用 multiDexEnabled true 时发生错误。


$ b 没有 multiDexEnabled true 错误更改为:

 错误:任务':app:dexDebug'的执行失败。 
> com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'C:\程序文件\Java\jdk1.7.0_79\bin\java.exe' '完成非零退出值2

这是我的gradle文件:

 'apply plugin:'com.android.application''


android {
compileSdkVersion 23
buildToolsVersion23.0.1

dexOptions {
preDexLibraries = true

}

defaultConfig {
applicationIdcom.example.chris.camerayoutube
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName1.0
multiDexEnabled true

}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
}

依赖关系{
testCompile'juni t:junit:4.12'


compile'c​​om.android.support:multidex:1.0.1'
compile'c​​om.android.support:support-v4:+'
compile'c​​om.android.support:design:23.1.1'

compile'c​​om.amazonaws:aws-android-sdk-s3:2. +'
compile' com.amazonaws:aws-android-sdk-sqs:2. +'
compile'c​​om.amazonaws:aws-android-sdk-core:2. +'
compile'c​​om.amazonaws:aws- android-sdk-cognito:2. +'
compile'c​​om.amazonaws:aws-java-sdk-core:1.10.52'

}
com.amazonaws:aws-> java-sdk-core:1.10.52
需要附加的库,因为对于android来说,从amazon github源文件中找到的是针对android独立库的文件。检查这个链接



对于android来说,需要 com.amazonaws:aws-android-sdk-core:2.2.12 这已经是儿童图书馆 com.amazonaws:aws-android-sdk-cognito:2。+ com.amazonaws:aws-android-sdk-sqs: 2。+ 您已经连接。



如何检查依赖关系/层次结构



执行以下命令: gradlew app:dependencies





  _releaseApk  -  ##内部使用,请勿手动配置## 
+ --- com.android .support:support-v4:+ - > 23.1.1
| \ --- com.android.support:support-annotations:23.1.1
+ --- com.android.support:design:23.1.1
| + --- com.android.support:appcompat-v7:23.1.1
| | \ --- com.android.support:support-v4:23.1.1(*)
| + --- com.android.support:recyclerview-v7:23.1.1
| | + --- com.android.support:support-annotations:23.1.1
| | \ --- com.android.support:support-v4:23.1.1(*)
| \ --- com.android.support:support-v4:23.1.1(*)
+ --- com.android.support:multidex:1.0.1
+ --- com。 amazonaws:aws-android-sdk-s3:2. + - > 2.2.12
| \ --- com.amazonaws:aws-android-sdk-core:2.2.12
| \ --- com.google.code.gson:gson:2.2.4
+ --- com.amazonaws:aws-android-sdk-core:2. + - > 2.2.12(*)
+ --- com.amazonaws:aws-android-sdk-sqs:2. + - > 2.2.12
| \ --- com.amazonaws:aws-android-sdk-core:2.2.12(*)
\ --- com.amazonaws:aws-android-sdk-cognito:2. + - > 2.2.12
\ --- com.amazonaws:aws-android-sdk-core:2.2.12(*)

标记为(*)的重复子库。你可以删除,如果你也是外部连接的(比如你的gradle support-v4 你已经连接了它已经在设计库中,并且和 aws- android-sdk-core )。



AFAIK com.amazonaws:aws-java-sdk-core:1.10。 52 将不需要用于android-sdk。
让我知道如果删除 java-sdk-core



核心& Java核心有相同的类,这就是为什么它给出错误的重复条目

删除 com.amazonaws:aws-java-sdk-core:1.10 .52 你也可以删除multidex选项,因为它不需要(方法数变得小于65k)



让我知道是否有任何问题。


I am trying to use Amazon AWS services with my project. I have added in the dependencies; the project builds fine. When I run the application on my phone I get this error:

    Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: com/amazonaws/auth/NoOpSigner.class

This error occurred when I enabled multiDexEnabled true.

Without the multiDexEnabled true the error changes to:

Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 2

Here is my gradle file:

'apply plugin: 'com.android.application''


android {
compileSdkVersion 23
buildToolsVersion "23.0.1"

dexOptions{
    preDexLibraries = true

}

defaultConfig {
    applicationId "com.example.chris.camerayoutube"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
   multiDexEnabled true

}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
    testCompile 'junit:junit:4.12'


compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:support-v4:+'
compile 'com.android.support:design:23.1.1'

compile 'com.amazonaws:aws-android-sdk-s3:2.+'
compile 'com.amazonaws:aws-android-sdk-sqs:2.+'
compile 'com.amazonaws:aws-android-sdk-core:2.+'
compile 'com.amazonaws:aws-android-sdk-cognito:2.+'
compile 'com.amazonaws:aws-java-sdk-core:1.10.52' 

}

解决方案

For android AWS sdk AFAIK it wont required com.amazonaws:aws-java-sdk-core:1.10.52 library to be attached because for android from the amazon github source what i found is for android seperate libraries are availble.check this link

For android this one is needed com.amazonaws:aws-android-sdk-core:2.2.12 which is already child library of com.amazonaws:aws-android-sdk-cognito:2.+ , com.amazonaws:aws-android-sdk-sqs:2.+ which you have already attached.

How to check Dependency/hierarchy ?

execute this command : gradlew app:dependencies

You will have output like below

_releaseApk - ## Internal use, do not manually configure ##
+--- com.android.support:support-v4:+ -> 23.1.1
|    \--- com.android.support:support-annotations:23.1.1
+--- com.android.support:design:23.1.1
|    +--- com.android.support:appcompat-v7:23.1.1
|    |    \--- com.android.support:support-v4:23.1.1 (*)
|    +--- com.android.support:recyclerview-v7:23.1.1
|    |    +--- com.android.support:support-annotations:23.1.1
|    |    \--- com.android.support:support-v4:23.1.1 (*)
|    \--- com.android.support:support-v4:23.1.1 (*)
+--- com.android.support:multidex:1.0.1
+--- com.amazonaws:aws-android-sdk-s3:2.+ -> 2.2.12
|    \--- com.amazonaws:aws-android-sdk-core:2.2.12
|         \--- com.google.code.gson:gson:2.2.4
+--- com.amazonaws:aws-android-sdk-core:2.+ -> 2.2.12 (*)
+--- com.amazonaws:aws-android-sdk-sqs:2.+ -> 2.2.12
|    \--- com.amazonaws:aws-android-sdk-core:2.2.12 (*)
\--- com.amazonaws:aws-android-sdk-cognito:2.+ -> 2.2.12
     \--- com.amazonaws:aws-android-sdk-core:2.2.12 (*)

Duplicate child library marked as a (*) . You can remove if you are also attaching externally(like in your gradle support-v4 you have attached which is already in design library and same like aws-android-sdk-core).

AFAIK com.amazonaws:aws-java-sdk-core:1.10.52 won't needed for android-sdk. Let me know if any class or anything missing after removing java-sdk-core

both android-core & java-core have same class thats why it gives error regarding duplicate entry

By removing com.amazonaws:aws-java-sdk-core:1.10.52 you can also remove multidex option as it wont needed (method count became less thn 65k)

Let me know if anything.

这篇关于错误:任务执行失败':app:packageAllDebugClassesForMultiDex'java.util.zip.ZipException:重复项:com / amazonaws / auth /的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆