119

我不确定这个错误是什么意思。

Execution failed for task ':excelSior:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: android/support/v4/util/TimeUtils.class

我目前正在android-support-v4.jar为我的图书馆使用

dependencies {
    compile project(':addThisSDK')
    compile project(':centeredContentButton')
    compile project(':googleplayservices_lib')
    compile files('libs/adxtag2.4.6.jar')
    compile files('libs/android-support-v4.jar')
    compile files('libs/aws-android-sdk-1.7.1.1-debug.jar')
    compile files('libs/commons-lang-2.6.jar')
    compile files('libs/crittercism_v4_4_0_sdkonly.jar')
    compile files('libs/dd-plist.jar')
    compile files('libs/FiksuAndroidSDK_4.1.1.jar')
    compile files('libs/iqengines-sdk-barcode.jar')
    compile files('libs/irEventTracker-1.2.jar')
    compile files('libs/jolt-core-0.0.7.jar')
    compile files('libs/json-utils-0.0.7.jar')
    compile files('libs/jsoup-1.7.2.jar')
    compile files('libs/kooaba-api-v4-java.jar')
    compile 'com.android.support:multidex:1.0.0'
}

gradle 同步期间不显示错误。就在我尝试运行应用程序时

可能是什么问题呢?

4

20 回答 20

82

您现在可能已经解决了这个问题,但只是为了避免没有答案,请尝试将其添加到您的build.gradle

configurations {
    all*.exclude group: 'com.android.support', module: 'support-v4'
}
于 2015-03-18T16:48:17.737 回答
65

您需要检查是否已插入 v4 库和编译库?您不得在您的应用程序或依赖程序中重复库。

删除重复库,只保留一个 V4。

在您的应用程序目录build.gradle文件中添加以下命令:

android{


    configurations {
        all*.exclude group: 'com.android.support', module: 'support-v4'
        all*.exclude group: 'com.android.support', module: 'support-annotations'
    }

}

这个对我有用!你可以试试看!

于 2016-09-08T10:38:10.733 回答
25

我在重新导入旧的 Eclipse 项目时也遇到了这种问题。它在项目中发生了一些旧的依赖项作为 jar 文件。

只需删除

编译文件树(目录:'libs',包括:'*.jar')

在 gradle 文件中

并在 gradle 文件中添加依赖项。

这个对我有用 ..

于 2016-03-30T17:33:35.720 回答
13

multiDexEnable=true在我的情况下,在 build.gradle 中设置后出现提到的“重复条目”错误。

为了完全解决错误,首先请查看使用超过 64K 方法配置应用程序(尤其是“使用 Gradle 为 Multidex 配置您的应用程序”)。

此外,在 Android Studio 中使用 ctrl+n 搜索导致“重复条目”错误的类的出现。确定包含重复项的模块和依赖项并将其从构建中排除,例如:

compile ('org.roboguice:roboguice:2.0') {
    exclude module: 'support-v4'
}

我不得不尝试多个模块标签,直到它起作用。排除“support-v4”解决了与“java.util.zip.ZipException:重复条目:android/support/v4/*”相关的问题

于 2016-07-30T14:57:36.820 回答
9

我的理解是对同一个 API 的重复引用(可能不同的版本号)。从命令行构建时应该相当容易调试。

./gradlew yourBuildVariantName --debug从命令行尝试。

违规项目将是第一个失败。一个示例可能如下所示:

14:32:29.171 [INFO] [org.gradle.api.Task] INPUT: /Users/mydir/Documents/androidApp/BaseApp/build/intermediates/exploded-aar/theOffendingAAR/libs/google-play-services.jar

14:32:29.171 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':BaseApp:packageAllyourBuildVariantNameClassesForMultiDex'

14:32:29.172 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :BaseApp:packageAllyourBuildVariantNameClassesForMultiDex FAILED'

在上述情况下,我包含在我的 libs 目录 (theOffendingAAR) 中的 aar 文件包括 Google Play Services jar(是的,整个事情。是的,我知道。)文件,而我的 BaseApp 构建文件使用了位置服务:

compile 'com.google.android.gms:play-services-location:6.5.87'

您可以安全地从构建文件中删除有问题的项目,清理并重建(必要时重复)。

于 2015-06-11T06:46:53.623 回答
9

检查你的依赖版本,你必须有兼容的版本,特别注意 com.google 包,必须有相同的版本,如:

compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.google.android.gms:play-services-maps:8.3.0'

两者都是 8.3.0,如果您有另一个版本编译将抛出该异常。

于 2016-02-18T19:48:13.103 回答
5

简单地从依赖项 gardle.project 中删除您的 Jar 文件作为 v7 并运行您的项目

于 2015-03-23T04:40:43.280 回答
5

对于 Expose.class 错误,即

java.util.zip.ZipException:重复条目:com/google/gson/annotations/Expose.class

使用下面的代码

configurations {
    all*.exclude  module: 'gson'
}
于 2016-05-25T09:46:54.123 回答
3

找出 lib 依赖于支持 v4,并排除它。

中的代码build.gradle是这样的:

androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.1') {
    // http://stackoverflow.com/a/30931887/5210
    exclude group: 'com.android.support', module: 'appcompat'
    exclude group: 'com.android.support', module: 'support-v4'
    exclude module: 'recyclerview-v7'
}

在我的情况下,lib 'espresso' 有一个名为 support-v4 的 jar,而在我的项目中,'app' 具有相同的 support-v4,在导入 espresso 时排除了 support-v4。

PS:好像compile project不能用exclude

于 2016-03-03T07:45:40.853 回答
1

这是因为您已经添加了一个库并多次赋予它对模块的依赖关系。

就我而言,我添加了一个库作为模块和 gradle 依赖项。

删除添加库的一个来源(我删除了 gradle 依赖项)解决了我的问题。

于 2017-07-07T12:30:33.243 回答
0

对于错误:任务 ':app:transformClassesWithJarMergingForDebug' com.android.build.api.transform.TransformException java.util.zip.ZipException 重复条目 com/google/gson/annotations/Expose.class 执行失败

这是我所做的:

1) 删除 gson-2.5.jar 文件。2) 配置 { all*.exclude module: 'gson-2.5' }

于 2016-08-17T14:15:42.520 回答
0

我遇到了这个问题,因为我手动复制了 libs 中的 jar 并提到了 gradle 文件中的依赖关系。您还检查您的项目结构,是否将相同的 jar 文件复制到任何其他文件夹(如 libs)或项目文件夹中。

于 2016-10-12T08:29:59.813 回答
0

升级android SDK后我遇到了同样的问题。我能够在 中运行应用程序,buildToolsVersion '23.0.1'当我更改为buildToolsVersion '24.0.3'

我通过将我的 java 版本从 1.7 更新到 1.8 解决了这个问题compileSdkVersion 24

于 2016-10-31T09:05:32.647 回答
0

这个问题花了我一整天的时间。我最终将 firebase-ui 库版本从 2.0.0 降级到 1.2.0,并在项目级 build.gradle 文件中添加了以下代码:

allprojects {
    repositories {
        jcenter()

        // Add the following code to your project level build.gradle
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
}
于 2017-07-06T07:43:29.413 回答
0

我也有这个问题,因为我已经编译了 'com.android.support:appcompat-v7:24.0.0-alpha1' 但我添加了 recyclerview liberary compile 'com.android.support:recyclerview-v7:24.0.2'..我将版本更改为与 compat 相同的版本(24.0.2 而不是 24.0.0)。

我得到了答案..可能对某人有帮助。

于 2018-01-26T09:07:27.693 回答
0

在我的情况下,在 build.gradle 中设置multiDexEnable = true 后出现了提到的“重复条目”错误。

我得到的确切错误如下:

Error:Execution failed for task 
':android:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: 
java.util.zip.ZipException: duplicate entry: 
com/google/android/gms/internal/zzqx.class

因此,我首先在 Android Studio 中使用 ctrl+n 搜索导致“重复条目”错误的类,然后搜索 com/google/android/gms/internal/zzqx.class,然后它显示 2 个带有一个版本的 gms 类条目8.4.0 和 1 版本 11.6.0 。

为了修复它,我同时使用 11.6.0 并且它是固定示例

早些时候

    compile "com.google.android.gms:play-services-games:11.6.0"
    compile "com.google.android.gms:play-services-auth:8.4.0"
    compile "com.google.android.gms:play-services-ads:11.6.0"

    compile "com.google.android.gms:play-services-games:11.6.0"
    compile "com.google.android.gms:play-services-auth:11.6.0"
    compile "com.google.android.gms:play-services-ads:11.6.0"

重建固定。

于 2018-04-02T18:31:58.350 回答
0

在我的情况下,确切的错误如下

':android:transformClassesWithJarMergingForDebug'。

com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:com/google/android/gms/internal/zzqx.class

我在一个模块 gradle 文件中使用了另一个版本的 google apis

if (!project.hasProperty('gms_library_version')) {
        ext.gms_library_version = '8.6.0'
   }

但是在其他模块版本 11.6.0 中如下

   compile "com.google.android.gms:play-services-ads:11.6.0"
    compile "com.google.android.gms:play-services-games:11.6.0"
    compile "com.google.android.gms:play-services-auth:11.6.0"

但是为了找到这个,我在 android studio 中做了一个 ctrl + n 并输入了类名 zzqx.class 然后它显示了 2 个 jar 文件正在为这个类提取,然后我明白我在某个地方使用的是 8.6.0 版本。在将 8.6.0 更改为 11.6.0 并重建项目时,问题已修复。

希望这可以帮助 。

更多关于这里 https://www.versionpb.com/tutorials/step-step-tutorials-libgdx-basic-setup-libgdx/implementing-google-play-services-leaderboards-in-libgdx/

于 2018-04-12T10:47:12.950 回答
0

对我来说,当我意外添加时发生了类似的事情

apply plugin: 'kotlin-android'

到我的 android 库模块。删除该行可以解决此问题。

于 2019-03-17T17:08:16.330 回答
0

我尝试了上述所有解决方案,但对我不起作用。我尝试通过 goto 项目结构 > 应用程序更新库。它对我有用!希望这个答案对某人有所帮助。

于 2019-09-04T18:16:41.693 回答
-1

试试这个:

android {
configurations {
        all*.exclude  module: 'PhotoView'  //去除重复依赖库
    }
}
于 2017-07-17T12:52:34.640 回答