Guava库重复输入错误

时间:2015-11-19 17:57:34

标签: android android-studio android-gradle android-guava

我正在尝试在我的应用程序中使用guava库。但我也在使用github的chromium_webview项目。这个webview项目包含番石榴库。

我收到以下错误:

  

错误:任务执行失败   ':应用程序:packageAllDebugClassesForMultiDex'。 java.util.zip.ZipException:   重复条目:com / google / common / annotations / GwtIncompatible.class

我已经查看过thisthis个答案,但似乎没有任何效果。

这是我的模块build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "my.package.name"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

    dexOptions {
        incremental true
        javaMaxHeapSize "2048M"
        jumboMode = true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile files('libs/svgAndroid2-3Jan2014.jar')
    compile project(':chromium_webview')
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.google.guava:guava:18.0'
}

我在chromium_webview项目中尝试过这样的排除方法:

compile (project(':chromium_webview')) {
    exclude group: 'com.google.guava', module: "guava_javalib.jar"
}

并且像这样:

compile (project(':chromium_webview')) {
    exclude module: "guava_javalib.jar"
}

我可以不再使用同一个图书馆了吗? 有没有办法为两个模块使用相同的库?

// =======================编辑:

就像@ petey提到的评论一样,我尝试从我的模块中删除guava库,而我的模块不会在另一个模块中读取库。

compile 'com.google.guava:guava:18.0'

这就是我尝试删除的行。

任何想法都会非常感激。
谢谢!!

1 个答案:

答案 0 :(得分:1)

我确实解决了这个问题,忘记发布了。

所以这里的问题是我在我的项目中使用maven / gradle依赖但是chromium_webview库正在使用实际的JAR文件作为库。

我修改了库以使用maven / gradle依赖项。 Android Studio和Gradle为我完成了所有工作并排除了必要的课程。

因此,请确保它们(库和您的模块)使用相同的方法 compile 'com.google.guava:guava:18.0'

我真的希望这有助于某人 谢谢。