在模块 guava-26.0-android.jar 和 guava-jdk5-17.0.jar 中发现重复的类。

3

查看文档以了解如何修复依赖项解析错误。

在模块guava-26.0-android.jar(com.google.guava:guava:26.0-android)和guava-jdk5-17.0.jar(com.google.guava:guava-jdk5:17.0)中找到重复的类。

我最初创建了这个项目,使用了谷歌的云视觉API,一切都正常工作。 但现在我无法解决这个依赖关系,这是集成Firestore所需要的。

implementation 'com.google.firebase:firebase-firestore:21.4.3'

我已经尝试过

implementation 'com.google.firebase:firebase-firestore:21.4.3' exclude module: 'com.google.gauva:gauva-jdk5:17.0'

并且
configurations {
    implementation.exclude module:'gauva-jdk5'
    all*.exclude group: 'com.google.guava', module: 'listenablefuture'
}

并且

implementation 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'
implementation 'com.google.guava:guava:26.0-android'

并且

android.useAndroidX=true//causes lot of errors, tried refactoring, but core error remained
android.enableJetifier=true//no effect

正如在StackOverflow、GitHub等网站上的大多数帖子中建议的那样,我尝试了多次清理和构建,但目前为止似乎什么也没起作用。Firestore实现是已验证的原因。应用程序build.gradle如下:

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
compileSdkVersion 29
buildToolsVersion "29.0.2"

defaultConfig {
    applicationId "com.google.sample.cloudvision"
    minSdkVersion 24
    targetSdkVersion 29
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    buildTypes.each {
        it.buildConfigField 'String', 'API_KEY', "\"AIzaSyCuSEBxcK9n6_ojdCo6uUDFALdZL2w024Y\""
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
configurations {
    implementation.exclude module:'gauva-jdk5'
    all*.exclude group: 'com.google.guava', module: 'listenablefuture'
}
}

dependencies {
implementation 'com.android.support:support-annotations:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'android.arch.lifecycle:extensions:1.1.1'
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.google.firebase:firebase-firestore:21.4.3' exclude module: 'com.google.gauva:gauva-jdk5:17.0'
testImplementation 'junit:junit:4.12'
//noinspection GradleCompatible
implementation 'com.android.support:appcompat-v7:27.0.2'
//noinspection GradleCompatible
implementation 'com.android.support:design:27.0.2'
implementation 'com.google.api-client:google-api-client-android:1.23.0' exclude module: 'httpclient'
implementation 'com.google.http-client:google-http-client-gson:1.23.0' exclude module: 'httpclient'
implementation 'com.google.apis:google-api-services-vision:v1-rev369-1.23.0' exclude module: 'com.google.gauva:gauva-jdk5:17.0'
//    implementation 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'
//    implementation 'com.google.guava:guava:26.0-android'
}

该项目的 build.gradle 文件是:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
    jcenter()
    maven {
        url 'https://maven.google.com/'
        name 'Google'
    }
    google()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.6.3'
    classpath 'com.google.gms:google-services:4.3.3'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    jcenter()
    mavenCentral()
    maven {
        url 'https://maven.google.com/'
        name 'Google'
    }
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

初始错误日志如下:

在core-1.0.0-runtime.jar (androidx.core:core:1.0.0)和support-compat-27.0.2-runtime.jar (com.android.support:support-compat:27.0.2)模块中发现了重复的类android.support.v4.app.INotificationSideChannel、android.support.v4.app.INotificationSideChannel$Stub、android.support.v4.app.INotificationSideChannel$Stub$Proxy、android.support.v4.os.IResultReceiver、android.support.v4.os.IResultReceiver$Stub、android.support.v4.os.IResultReceiver$Stub$Proxy、android.support.v4.os.ResultReceiver、android.support.v4.os.ResultReceiver$1、android.support.v4.os.ResultReceiver$MyResultReceiver和android.support.v4.os.ResultReceiver$MyRunnable。在guava-26.0-android.jar (com.google.guava:guava:26.0-android)和guava-jdk5-17.0.jar (com.google.guava:guava-jdk5:17.0)模块中发现了重复的类com.google.common.annotations.Beta、com.google.common.annotations.GwtCompatible、com.google.common.annotations.GwtIncompatible、com.google.common.annotations.VisibleForTesting、com.google.common.base.Absent、com.google.common.base.AbstractIterator和com.google.common.base.AbstractIterator$1。该错误重复出现约2300000个单词。

gradle属性 -> 5.6.4

2个回答

8
也许已经有点晚了,不过我还是来回答你的问题。
我曾遇到同样的问题。我使用的是Youtube Data API v3。在多次搜索和查看Stackoverflow上的答案后,我把它们混合在一起,竟然成功了!
这是我所做的一切,而且它确实有效。
  1. Added configurations to app level build.gradle file. Like below

    configurations {
        implementation.exclude module:'guava-jdk5'
        all*.exclude group: 'com.google.guava', module: 'listenablefuture'
    }
    
  2. Added these two lines in dependency block

    implementation 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'
    implementation 'com.google.guava:guava:31.1-android'
    
  3. And inside the dependencies needed for youtube data api I had

    exclude group:'com.google.guava'
    

就像下面这样

implementation ('com.google.api-client:google-api-client-android:1.22.0') {
    exclude group: 'org.apache.httpcomponents'
    exclude group:'com.google.guava'
}
implementation ('com.google.apis:google-api-services-youtube:v3-rev183-1.22.0') {
    exclude group: 'org.apache.httpcomponents'
    exclude group:'com.google.guava'
}

如果您想查看的话,可以在 GitHub gist 中这里查看我的整个build.gradle文件。
谢谢 :-)

在我的情况下,我不得不将“-jdk5”添加到排除组中,即排除组:“com.google.guava-jdk5”。 - HUSSENI ABDULHAKEEM
第一步,然后按照第二步所示添加implementation 'com.google.guava:guava:31.1-android',对我来说起作用了。谢谢! - James
谢谢,帮助我走出了代码困境! - The_Long_Distance_Runner
谢谢,在浪费了两天之后,终于找到了这个解决方案帮了我! - undefined

0
我通过在我的应用级别的gradle文件中添加以下代码来解决这个错误: configurations { implementation.exclude module:'guava-jdk5' }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接