java.util.zip.ZipException:重复条目:android/support/v4/view/MotionEventCompatEclair.class
java.util.zip.ZipException: duplicate entry: android/support/v4/view/MotionEventCompatEclair.class
我是 android 工作室的新手,正在尝试从 eclipse 导入一个项目,但我觉得我 运行 解决了每一个可能的问题。我目前收到的错误是:
Error:Execution failed for task ':jobFlexwithInvoice:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: android/support/v4/view/MotionEventCompatEclair.class
我见过类似 here and here 等问题的答案。但我认为我需要更多帮助,因为它不会消失。我已经将异常添加到我的 build.gradle 文件中的几乎所有内容,包括实际支持 4v 依赖只是为了踢,但我仍然收到此错误。而且由于包含的项目,我还有多个 build.gradle 文件?似乎可以忽略项目 build.gradle 文件,我只需要将例外添加到模块 build.gradle 文件中即可? (当有人说要向 build.gradle 文件中添加一些内容时,这很烦人,我并不总是确定是哪一个)
无论如何,这里是我的每个 build.gradle 文件的依赖项部分,因为它们当前是:
我的应用程序:
dependencies {
compile ('com.android.support:multidex:1.0.0'){
exclude module: 'support-v4'
}
compile project(':facebook') {
exclude module: 'support-v4'
}
compile project(':apptentive')
compile project(':androidsdkui'){
exclude module: 'support-v4'
}
compile ('com.google.android.gms:play-services:+'){
exclude module: 'support-v4'
}
compile files('libs/android-support-v13.jar') {
exclude module: 'support-v4'
}
compile files('libs/DynamicPDF.jar')
compile files('libs/picasso-2.5.0.jar')
compile ('com.android.support:support-v4:22.0.0'){
exclude module: 'support-v4'
}
}
脸书:
dependencies {
compile files('libs/bolts-android-1.2.1.jar')
compile ('com.android.support:support-v4:22.0.0'){
exclude module: 'support-v4'
}
}
androidsdkui:
dependencies {
compile files('libs/appboy.jar')
compile ('com.android.support:support-v4:22.0.0'){
exclude module: 'support-v4'
}
}
还有一个 apptentive build.gradle 文件,但它没有任何依赖项。在添加所有这些异常之前,我遇到了与第一个 link 相同的错误,现在唯一的区别是它的 android/support/v4/view/MotionEventCompatEclair.class
而不是 android/support/v4/util/TimeUtils.class
如果有一种方法可以查看重复项的来源,那也很好,我无法通过快速 google 搜索找到任何内容。
您可以尝试在 allprojects
元素内的顶级 build.gradle
文件中添加以下内容吗?它应该如下所示。
allprojects {
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
}
希望对您有所帮助。
我更新了问题,这样您就可以看到我做错事的一些方式。我的一些项目包括支持 v4,我并没有排除它们。从项目中排除事物的正确方法是:
compile (project(':facebook')) {
exclude module: 'support-v4'
}
你必须在编译后将额外的一组括号放在所有内容周围。我假设从文件中排除内容也是如此
即。
compile file(myfile.jar)
会变成
compile (file(myfile.jar)) {
exclude module: 'support-v4'
}
我是 android 工作室的新手,正在尝试从 eclipse 导入一个项目,但我觉得我 运行 解决了每一个可能的问题。我目前收到的错误是:
Error:Execution failed for task ':jobFlexwithInvoice:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: android/support/v4/view/MotionEventCompatEclair.class
我见过类似 here and here 等问题的答案。但我认为我需要更多帮助,因为它不会消失。我已经将异常添加到我的 build.gradle 文件中的几乎所有内容,包括实际支持 4v 依赖只是为了踢,但我仍然收到此错误。而且由于包含的项目,我还有多个 build.gradle 文件?似乎可以忽略项目 build.gradle 文件,我只需要将例外添加到模块 build.gradle 文件中即可? (当有人说要向 build.gradle 文件中添加一些内容时,这很烦人,我并不总是确定是哪一个)
无论如何,这里是我的每个 build.gradle 文件的依赖项部分,因为它们当前是:
我的应用程序:
dependencies {
compile ('com.android.support:multidex:1.0.0'){
exclude module: 'support-v4'
}
compile project(':facebook') {
exclude module: 'support-v4'
}
compile project(':apptentive')
compile project(':androidsdkui'){
exclude module: 'support-v4'
}
compile ('com.google.android.gms:play-services:+'){
exclude module: 'support-v4'
}
compile files('libs/android-support-v13.jar') {
exclude module: 'support-v4'
}
compile files('libs/DynamicPDF.jar')
compile files('libs/picasso-2.5.0.jar')
compile ('com.android.support:support-v4:22.0.0'){
exclude module: 'support-v4'
}
}
脸书:
dependencies {
compile files('libs/bolts-android-1.2.1.jar')
compile ('com.android.support:support-v4:22.0.0'){
exclude module: 'support-v4'
}
}
androidsdkui:
dependencies {
compile files('libs/appboy.jar')
compile ('com.android.support:support-v4:22.0.0'){
exclude module: 'support-v4'
}
}
还有一个 apptentive build.gradle 文件,但它没有任何依赖项。在添加所有这些异常之前,我遇到了与第一个 link 相同的错误,现在唯一的区别是它的 android/support/v4/view/MotionEventCompatEclair.class
而不是 android/support/v4/util/TimeUtils.class
如果有一种方法可以查看重复项的来源,那也很好,我无法通过快速 google 搜索找到任何内容。
您可以尝试在 allprojects
元素内的顶级 build.gradle
文件中添加以下内容吗?它应该如下所示。
allprojects {
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
}
希望对您有所帮助。
我更新了问题,这样您就可以看到我做错事的一些方式。我的一些项目包括支持 v4,我并没有排除它们。从项目中排除事物的正确方法是:
compile (project(':facebook')) {
exclude module: 'support-v4'
}
你必须在编译后将额外的一组括号放在所有内容周围。我假设从文件中排除内容也是如此
即。
compile file(myfile.jar)
会变成
compile (file(myfile.jar)) {
exclude module: 'support-v4'
}