java.util.zip.ZipException:重复条目
Posted
技术标签:
【中文标题】java.util.zip.ZipException:重复条目【英文标题】:java.util.zip.ZipException: duplicate entry 【发布时间】:2015-04-26 00:15:54 【问题描述】:我整天都在 android Studio 中与这个错误作斗争。项目是从 Eclipse 解决方案中导入的。我一直在尝试实施为类似帖子列出的所有修复程序,但没有任何效果。我是 Android 初学者。
我很乐意提供任何进一步的信息。
错误:任务 ':app:packageAllDebugClassesForMultiDex' 执行失败。
:com/google/zxing/BarcodeFormat.class
请帮忙!!我应该尝试让它在 Eclipse 中运行吗?
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript
repositories
jcenter()
dependencies
classpath 'com.android.tools.build:gradle:1.1.2'
allprojects
repositories
jcenter()
apply plugin: 'com.android.application'
android
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig
applicationId "com.appname.android"
minSdkVersion 8
targetSdkVersion 18
multiDexEnabled true
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
dependencies
compile 'com.android.support:support-v4:22.1.1'
compile files('libs/ksoap2-android-assembly-3.1.0-jar-with-dependencies.jar')
provided files('libs/zxing-core.jar')
【问题讨论】:
这意味着你试图将同一个类打包两次。我敢打赌你复制了 zxing 源代码和 lib。不要那样做。你不应该复制任何来源。 感谢您的回复。我查看了它,对 zxing 的唯一引用是在应用程序 gradle 文件中。编译文件('libs/zxing-core.jar') 还有什么想法吗? @user2512589 请发布您的build.gradle
。
@JaredBurrows 我让它从改变编译文件('libs/zxing-core.jar')到提供的文件('libs/zxing-core.jar')进行编译。新问题:当我运行模拟器时,现在正在打开并且一个空白的黑屏?控制台显示“HAX 正在工作,模拟器在快速 virt 模式下运行”。有什么想法吗?
你为什么要使用provided
而不是compile
?
【参考方案1】:
确保您拥有来自 SDK 管理器的最新构建工具和 sdk。我已将那些 jars
转换为 Gradle
依赖项。
build.gradle
:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript
repositories
jcenter()
maven url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/' // <-- added for ksoap
dependencies
classpath 'com.android.tools.build:gradle:1.1.3' // <-- updated
allprojects
repositories
jcenter()
maven url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/' // <-- added for ksoap
app/build.gradle
:
apply plugin: 'com.android.application'
android
compileSdkVersion 22
buildToolsVersion "22.0.1" // <-- updated
defaultConfig
applicationId "com.appname.android"
minSdkVersion 8
targetSdkVersion 22 // <-- updated
// multiDexEnabled true // <-- you do not need this
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
dependencies
compile 'com.android.support:support-v4:22.1.1'
compile 'com.google.code.ksoap2-android:ksoap2-android:3.4.0'
// compile files('libs/ksoap2-android-assembly-3.1.0-jar-with-dependencies.jar') // <-- avoid using jars
compile 'com.google.zxing:core:3.2.0'
// provided files('libs/zxing-core.jar') // <-- avoid using jars
【讨论】:
感觉很接近。得到以下信息:错误:(23、13)无法解决:com.google.code.ksoap2-android:ksoap2-android:3.4.0 你没有加maven url 'http://ksoap2-android.googlecode.com/svn/m2-repo'
吗?
是的,我复制了您提供的 build.gradle。 Android Studio 也让我安装了 SDK 22。
谢谢!它现在正在编译您的更改。它仍然是一个空白的模拟器?也许与模拟器设置有关?可能是我的开发机器不够强大?
用 Maven 存储库版本 compile 'com.google.zxing:core:3.2.0'
替换 compile files('libs/zxing-core.jar')
对我有用。使用 Maven 可以解决版本依赖关系,而不是创建重复项。谢谢,很重要!【参考方案2】:
java.util.zip.ZipException:重复条目
我也面临同样的问题。但是我已经解决了。
这个问题主要发生在我们将项目从一个系统移到另一个系统时。所以一个系统的 gradle 版本和 SDK 工具版本与其他系统不同。
请检查您是从其他系统导入项目还是从互联网下载项目
1.你的系统和下载的应用程序的gradle版本是不是匹配的?
-
和SDK工具匹配不?
如果项目在同一个系统中,但是你得到了 Same 异常,那么上面的解决方案可能会有所帮助。
我的问题是应用程序“依赖项”的版本低于系统 sdk 工具版本。
我们应该为您的应用程序的每个依赖项提供正确的版本,与您的系统 SDK 工具版本相关。
我认为 Android Studio 可能会让我们感到困惑。该异常应该是系统 SDK 工具版本与应用程序依赖项版本不匹配。
在我的应用程序中,依赖项之一是“support-v7”版本是 24.1.1,但我的系统具有“support-v7:24.2.0”。所以我被改为最新版本。然后我的问题就解决了。
【讨论】:
以上是关于java.util.zip.ZipException:重复条目的主要内容,如果未能解决你的问题,请参考以下文章