提问人:bman 提问时间:11/17/2014 最后编辑:OneCricketeerbman 更新时间:9/5/2019 访问量:250902
java.util.zip.ZipException:packageAllDebugClassesForMultiDex 期间的重复条目
java.util.zip.ZipException: duplicate entry during packageAllDebugClassesForMultiDex
问:
我不确定这个错误是什么意思。
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 同步期间未显示错误。就在我尝试运行应用程序时
可能是什么问题?
答:
您现在可能已经解决了这个问题,但只是为了解决这个问题不会一直悬而未决,
尝试将其添加到您的:build.gradle
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
评论
Error:Execution failed for task ':Analyst:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: com/android/vending/billing/IInAppBillingService$Stub$Proxy.class
configurations
简单:从依赖项中删除 Jar 文件:gardle.project 为 v7 并运行您的项目
评论
我的理解是,对同一 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'
您可以安全地从构建文件中删除有问题的项,清理并重新生成(如有必要,请重复)。
评论
检查您的依赖项版本,您必须具有兼容的版本,特别注意 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,如果您有其他版本编译将抛出该异常。
评论
找出 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 的罐子,在我的项目 'app' 中具有相同的 support-v4,在导入 espresso 时排除 support-v4。
PS:似乎不能与compile project
exclude
在重新导入旧的eclipse项目时,我也遇到了这种问题。它作为项目中的jar文件发生了一些旧的依赖项。
只需删除
编译文件树(dir: 'libs', include: '*.jar')
在 gradle 文件中
并在 gradle 文件中添加依赖项。
它对我有用......
评论
.jar
compile fileTree(...)
对于 Expose.class错误,即
java.util.zip.ZipException:重复条目:com/google/gson/annotations/Expose.class
使用以下代码
configurations {
all*.exclude module: 'gson'
}
评论
gson
就我而言,提到的“重复条目”错误是在 build.gradle 中设置后出现的。multiDexEnable=true
为了完全解决该错误,首先请查看使用超过 64K 方法配置应用程序(特别是“使用 Gradle 为 Multidex 配置应用程序”)。
此外,在 Android Studio 中使用 ctrl+n 搜索导致“重复条目”错误的类的出现次数。确定包含重复项的模块和依赖项,并将其从构建中排除,例如:
compile ('org.roboguice:roboguice:2.0') {
exclude module: 'support-v4'
}
我不得不尝试多个模块标签,直到它起作用。排除“support-v4”可解决与“java.util.zip.ZipException: duplicate entry: android/support/v4/*”相关的问题
对于错误:任务“:app:transformClassesWithJarMergingForDebug”(错误:任务:转换类WithJarMergingForDebug)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' }
评论
您需要检查是否插入了 v4 库和编译库?不得在应用或依赖项程序中重复库。
删除重复库,以便只保留一个 V4。
在应用目录文件中
添加以下命令:build.gradle
android{
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
all*.exclude group: 'com.android.support', module: 'support-annotations'
}
}
它对我有用!你可以试试看!
评论
我遇到了这个问题,因为我在 libs 中手动复制了 jar,并在 gradle 文件中提到了依赖项。您还可以检查项目结构,是否将相同的 jar 文件复制到任何其他文件夹(如 libs 或项目文件夹)中。
升级android SDK后,我遇到了同样的问题。我能够在 中运行应用程序,当我更改为buildToolsVersion '23.0.1'
buildToolsVersion '24.0.3'
我通过将我的 java 版本从 1.7 更新到 1.8 解决了这个问题compileSdkVersion 24
这个问题花了我一整天的时间。我最终将 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'
}
}
}
评论
这是因为您已经添加了一个库,并多次给出了它对模块的依赖关系。
就我而言,我添加了一个库作为模块和 gradle 依赖项。
删除一个添加库的来源(我删除了 gradle 依赖项)解决了我的问题。
评论
试试这个:
android {
configurations {
all*.exclude module: 'PhotoView' //去除重复依赖库
}
}
评论
我也有这个问题,因为我编译了'com.android.support:appcompat-v7:24.0.0-alpha1',但我添加了recyclerviewliberary编译'com.android.support:recyclerview-v7:24.0.2'。我将版本更改为与 compat like (24.0.2 intead of 24.0.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"
重建已修复。
就我而言,确切的错误如下
':android:transformClassesWithJarMergingForDebug'。
com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:com/google/android/gms/internal/zzqx.class
我正在使用另一个版本的谷歌 api,即在一个模块 gradle 文件中
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 并重建项目时,问题已修复。
希望这会有所帮助。
对我来说,当我不小心添加时,也发生了类似的事情
apply plugin: 'kotlin-android'
到我的 Android 库模块。删除该行可解决该问题。
我尝试了上述所有解决方案,但对我不起作用。我尝试通过应用程序> goto 项目结构更新库。它对我有用!希望这个答案对某人有所帮助。
评论