我是android studio的新手,我正试图从eclipse导入一个项目,但我觉得我遇到了每一个问题。我目前得到的错误是:
Error:Execution failed for task ':jobFlexwithInvoice:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: android/support/v4/view/MotionEventCompatEclair.class
我见过类似here和here等问题的答案。但我认为我需要更多帮助,因为它不会消失。我已经在build.gradle文件的几乎所有内容中添加了异常,包括仅用于踢的实际支持4v依赖,并且仍然出现此错误。而且由于包含项目,我还有多个build.gradle文件?看起来项目build.gradle文件可以忽略,我只需要在模块build.gradle文件中添加例外? (当有人说要在build.gradle文件中添加内容时,这很烦人,我不总是确定哪一个)
无论如何,这是我目前的每个build.gradle文件的依赖项部分:
对myApp:
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'
}
}
Facebook的:
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文件,但它没有任何依赖项。在添加所有这些异常之前,我得到的错误与第一个链接中的错误相同,现在唯一的区别是android/support/v4/view/MotionEventCompatEclair.class
而不是android/support/v4/util/TimeUtils.class
如果有办法查看重复项的来源,那也很棒,我无法通过快速谷歌搜索找到任何内容。
答案 0 :(得分:2)
我更新了问题,以便您可以看到我做错事的一些方法。我的一些项目包括支持v4,我没有将它们排除在外。从项目中排除事物的正确方法是:
compile (project(':facebook')) {
exclude module: 'support-v4'
}
你必须在编译后将所有括号括起来。我假设同样从文件中排除东西
即。
compile file(myfile.jar)
会变成
compile (file(myfile.jar)) {
exclude module: 'support-v4'
}
答案 1 :(得分:0)
您可以尝试在build.gradle
元素内的顶级allprojects
文件中添加以下内容吗?它看起来应该如下所示。
allprojects {
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
}
希望这有帮助。