【发布时间】:2015-04-17 11:59:24
【问题描述】:
我已经从 Eclipse 中导出了一个项目 - 但现在我无法将支持库添加到我的项目 compile 'com.android.support:support-v4:21.0.0' 因为在这个项目中使用的库有自己的同一个库的副本(但他们有它在一个libs 文件夹中的 jar 文件)。现在,当我添加 compile 'com.android.support:support-v4:21.0.0' 时,我遇到了这个问题:
Error:Execution failed for task ':Athan:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: android/support/annotation/IntDef.class
有人可以帮我解决这个问题吗?
这是我的应用 build.gradle
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':google-play-services_lib')
compile project(':library_viewpager')
compile project(':sliding_library')
compile project(':android-support-v7-appcompat')
compile 'com.android.support:multidex:1.0.0'
compile 'com.android.support:support-v4:21.0.0'
}
android {
compileSdkVersion 21
buildToolsVersion "22.0.1"
dexOptions {
preDexLibraries = false
}
defaultConfig {
multiDexEnabled true
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
【问题讨论】:
-
删除它。如果您已经有一个使用此依赖项的库项目,则应该在您为该库添加依赖项时选择它
-
检查jar的版本是否相同。例如,当您导入库时,如果两个库中有相同的 jar,则复制一个并将其粘贴到另一个中。它将要求更换选项。点击是
-
超出范围,但不将 google-play-service 作为外部项目提供适当的依赖项。见这里developer.android.com/google/play-services/setup.html
标签: android android-studio gradle android-gradle-plugin