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

时间:2016-02-16 11:38:02

标签: android android-studio gradle build.gradle

我正在尝试将Amazon AWS服务用于我的项目。我添加了依赖项;该项目建设良好。 当我在手机上运行应用程序时出现此错误:

public function Start_Secure_Session()
{
    // Forces sessions to only use cookies.
    ini_set('session.use_only_cookies', 1);

    // Gets current cookies params
    $cookieParams = session_get_cookie_params();

    // Set Cookie Params
    session_set_cookie_params($cookieParams["lifetime"],      $cookieParams["path"], $cookieParams["domain"], $this->isHTTPS, $this-  >deny_java_session_id);
    // Sets the session name
    session_name($this->session_name);

    // Start the php session
    session_start();

    // If new session or expired, generate new id
    if (!isset($_SESSION['new_session']))
    {
        $_SESSION['new_session'] = "true";

        // regenerate the session, delete the old one.
        session_regenerate_id(true);
    }
}

启用 Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: com/amazonaws/auth/NoOpSigner.class 时发生此错误。

如果没有multiDexEnabled true,则错误更改为:

multiDexEnabled true

这是我的gradle文件:

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

3 个答案:

答案 0 :(得分:2)

对于Android AWS sdk AFAIK,它不需要附加com.amazonaws:aws-java-sdk-core:1.10.52库,因为对于来自amazon github源的android我发现的是android单独的库是可用的。check this link

对于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 - ## 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 (*)

标记为(*)的重复子库。如果您还在外部附加,则可以删除(例如您已经附加的gradle support-v4已经在设计库中,并且与aws-android-sdk-core相同)。

android-sdk不需要AFAIK com.amazonaws:aws-java-sdk-core:1.10.52。 移除java-sdk-core

后,如果有任何课程或任何遗失,请告知我们

android-core& java-core有相同的类,这就是为什么它给出了有关重复条目的错误

删除com.amazonaws:aws-java-sdk-core:1.10.52,您也可以删除不需要的multidex选项(方法计数减少到65k)

如果有的话,请告诉我。

答案 1 :(得分:0)

如果您只是导入一些jar文件,可以尝试删除它们并一次添加一个。这将帮助您确定哪一个导致错误。

答案 2 :(得分:0)

packageAllDebugClassesForMultiDex 错误的主要原因与您在Stackoverflow中的所有其他帖子中找到的相同,即您必须拥有一些在项目中可以多次使用的类文件。在我的情况下,我在上面的项目中有很多模块,如Facebook,谷歌付费服务和滑动菜单等。所有这些模块都有自己的v4.support jar文件副本。我所做的是删除所有这些库libs文件夹中的所有v4.support文件。然后从我的sdks添加依赖到v4.support lib,即从Android Studio项目结构中添加com.android.support libs。为此...

  1. 转到文件>项目结构。
  2. 逐个选择这些模块中的每一个。
  3. 在名为Dependency的最后一个选项卡中,删除编译fileTree(dir: ' libs',包括:' * .jar')如果你只有v4.support lib(或者 有问题的一个)在该模块的libs文件夹中。
  4. 单击+添加v4.support lib,然后添加库并选择 v4.support来自你的sdks的库。
  5. 完成了。清理项目并重新构建它。 packageAllDebugClassesForMultiDex 问题已经消失。

    它会帮助你。有关详细信息,请访问此处java.util.zip.ZipException: duplicate entry :how to overcome