Gradle 添加 google-api-client 时构建失败并出现重复项

Gradle build fails with duplicates when adding google-api-client

我正在向需要 google-api-client 的项目添加代码,当我通过 gradle 依赖项添加它时,出现重复错误。

这里是gradle依赖列表

dependencies {
    compile 'com.adobe.creativesdk:image:4.0.0'
    // compile project(':showcaseView')
    compile project(':facebook')
    compile project(':SwipeMenuListView')
    compile 'com.android.support:multidex:1.0.0'
    compile 'com.android.support:design:22.2.0'
    compile 'com.google.code.gson:gson:2.3.1'
    compile 'com.google.android.gms:play-services:7.5.+'
    compile 'com.google.android.gms:play-services-appinvite:7.5.0'
    compile 'org.apache.httpcomponents:httpmime:4.3.6'
    compile 'org.apache.httpcomponents:httpcore:4.3.3'
    compile 'commons-codec:commons-codec:1.9'
    compile 'commons-io:commons-io:2.4'
    compile 'com.google.gdata:core:1.47.1'
    compile files('libs/tape-1.1.0.jar')
    compile files('libs/gdata-photos-meta-2.0.jar')

    compile 'com.google.api-client:google-api-client:1.20.0'
    // compile 'com.google.http-client:google-http-client:1.20.0'
    // compile files('libs/android-oauth-client-0.4.5.jar')
}

这是我收到的错误

Execution failed for task ':FloomIt:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: com/google/common/collect/package-info.class

如果我从依赖项列表中删除 google-api-client 行,错误就会消失。

对如何进行有什么建议吗?

那是因为com.google.api-client:google-api-client依赖于com.google.guava:guava-jdk5,而com.google.gdata:core依赖于com.google.guava:guava。 JDK5分裂是不幸的。

Gradle 允许您覆盖依赖项。尝试用类似的东西替换 gdata 依赖项:

compile('com.google.gdata:core:1.47.1') {
    exclude group: 'com.google.guava', module: 'guava'
}