Android java.util.zip.ZipException:PackageAllDebugClassesForMultiIndex期间重复条目
我不知道这个错误是什么意思Android java.util.zip.ZipException:PackageAllDebugClassesForMultiIndex期间重复条目,android,android-gradle-plugin,android-support-library,android-multidex,Android,Android Gradle Plugin,Android Support Library,Android Multidex,我不知道这个错误是什么意思 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(':
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
:
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
简单地将Jar文件作为v7从dependencies gardle.project中删除
然后运行您的项目我的理解是,对同一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,如果您有其他版本,编译将抛出该异常。找出库依赖于支持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'
}
在我的情况下,库“espresso”有一个名为support-v4的jar,在我的项目“app”中有相同的support-v4,在导入espresso时排除support-v4
PS:似乎
编译项目
无法使用排除
在重新导入旧的eclipse项目时,我也遇到了这种问题。它在项目中作为jar文件出现了一些旧的依赖关系
移除
编译文件树(目录:“libs”,包括:“*.jar”)
在渐变文件中
if (!project.hasProperty('gms_library_version')) {
ext.gms_library_version = '8.6.0'
}
并在gradle文件中添加依赖项
它适用于我。用于Expose.class错误,即 java.util.zip.ZipException:重复条目:com/google/gson/annotations/Expose.class 使用下面的代码
configurations {
all*.exclude module: 'gson'
}
在我的例子中,在build.gradle中设置multiDexEnable=true
后出现了提到的“重复条目”错误
为了完全解决这个错误,首先看一看(特别是“使用Gradle为多索引配置应用程序”)
此外,在Android Studio中使用ctrl+n搜索导致“重复条目”错误的类的出现。确定包含重复项的模块和依赖项,并将其从生成中排除,例如:
compile ('org.roboguice:roboguice:2.0') {
exclude module: 'support-v4'
}
我必须尝试多个模块标签,直到它工作。排除“support-v4”可解决与“java.util.zip.zipeException:重复条目:android/support/v4/*”相关的问题。错误:任务执行失败:app:transformClassesWithJarMergingForDebug'com.android.build.api.transform.TransformException java.util.zip.zipeException重复条目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'
我通过使用
compilesdkkversion24
将java版本从1.7更新到1.8解决了这个问题。这个问题花了我一整天的时间。我最终将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',但我添加了recyclerview library compile'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,然后它显示了gms类的两个条目,一个版本为8.4.0,一个版本为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"
之后
重建已修复。在我的情况下,确切错误如下 “:android:transformClassesWithJarMergingForDebug” com.android.build.api.transform.TransformException:java.util.zip.zipeException:重复条目:com/google/android/gms/internal/zzqx.class 我使用的是另一个版本的谷歌API,即在一个模块gradle文件中
if (!project.hasProperty('gms_library_version')) {
ext.gms_library_version = '8.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"
apply plugin: 'kotlin-android'