android - Guava库重复录入错误

标签 android android-studio android-gradle-plugin android-guava

我正在尝试使用 guava我的应用程序中的库。但我也在使用 chromium_webview来自github的项目。此 webview 项目包含 guava 库。

我收到以下错误:

Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'. java.util.zip.ZipException: duplicate entry: 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'

那是我尝试删除的行。

任何想法将不胜感激。
谢谢!!

最佳答案

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

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

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

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

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

关于android - Guava库重复录入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33811073/

相关文章:

java - 如何在android中使用HTTP post方法解析JSON数据?

android - 如何设置 Artifactory 使用 https ://maven. google.com 作为远程仓库?

android - 防止应用程序克隆器克隆 Android 应用程序

java - 需要一些帮助对安排每日通知的代码进行故障排除

android - 选择构建类型时如何区分构建风格?

android - 如何将 ImageView 添加为 ListView header ?

android - Android-Gradle同步失败:该项目正在使用不受支持的Gradle版本

android-studio - 安卓工作室 4.0 安卓 :foregroundServiceType not found when targetSdkVersion 28

Android Studio 构建风格 - 如何在不同风格中拥有相同的源文件

java - 如何避免在 Android(或任何 Java)项目中包含未使用的库?