在模块中发现重复 class com.google.android.gms.internal.vision.zze

Duplicate class com.google.android.gms.internal.vision.zze found in modules

我正在尝试使用 openCV 和 Firebase ML Kit 构建应用程序。但是在构建项目时出现以下错误:

Duplicate class com.google.android.gms.internal.vision.zze found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)
Duplicate class com.google.android.gms.internal.vision.zzf found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)
Duplicate class com.google.android.gms.internal.vision.zzg found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)
Duplicate class com.google.android.gms.internal.vision.zzh found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)
Duplicate class com.google.android.gms.internal.vision.zzi found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)
Duplicate class com.google.android.gms.internal.vision.zzv found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)
Duplicate class com.google.android.gms.internal.vision.zzw found in modules jetified-play-services-vision-20.0.0-runtime.jar (com.google.android.gms:play-services-vision:20.0.0) and jetified-play-services-vision-common-19.1.0-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.0)

Go to the documentation to learn how to Fix dependency resolution errors.

我尝试搜索完全相同的错误但没有得到任何结果,然后我搜索了重复的 class 问题,没有解决问题的特定方法,每个人都分享了他们的经验,但都没有为我工作。

这是我的build.gradle文件:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.2"

    defaultConfig {
        applicationId "com.example.cameraactivity"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

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

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.3.1'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.1'

    implementation 'com.google.firebase:firebase-ml-vision:24.1.0'
    implementation project(path: ':sdk')

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

}

都是关于这一行的:

implementation 'com.google.firebase:firebase-ml-vision:24.1.0'

当我评论这一行时,它不会在我构建项目时出错(我还没有添加功能)。 提前致谢

在build.gradle中添加以下内容:模块

implementation 'com.google.android.gms:play-services-vision:20.0.0'

implementation 'com.google.firebase:firebase-ml-vision:24.0.3'
implementation 'com.google.firebase:firebase-ml-vision-barcode-model:16.1.1'

并在 build.gradle:项目

classpath 'com.google.gms:google-services:4.3.3'

在 buildscript-->dependencies.

或者,您最好转移到我们 6 月初推出的新 ML Kit SDK。 on-device API 在 Firebase ML 中被视为已弃用,更新/改进仅在新 SDK 中可用。为帮助转换,可以找到迁移指南 here

我在使用 24.1.0 版的 firebase-ml-vision 时遇到了同样的问题。 这是官方的解决方案:

Firebase Release Note MLKIT Self Serve Fixes

所以我不得不向 play-services-vision 添加一个我以前不再需要的依赖项:

实施'com.google.android.gms:play-services-vision:20.1.1'

我希望他们会在下一个版本中修复它

我有同样的问题,如果您正在使用 firebase 依赖项更新到 app/build 中的最新版本。gradle 请参阅附件过程

dependencies {
 
    implementation platform('com.google.firebase:firebase-bom:29.0.0')
}

通过文档获取最新版本 https://firebase.google.com/support/release-notes/android

我们遇到了类似的问题。我将在此基础上添加一些步骤,希望遇到此问题的其他人稍后可以自行解决。 我们的问题是,

Execution failed for task ':app:checkStagingReleaseDuplicateClasses'. 
> 1 exception was raised by workers: java.lang.RuntimeException: Duplicate class com.google.android.gms.internal.vision.zzbl found in modules play-services-vision-common-19.1.3-runtime.jar (com.google.android.gms:play-services-vision-common:19.1.3) and play-services-vision-face-contour-internal-16.0.0-runtime.jar (com.google.android.gms:play-services-vision-face-contour-internal:16.0.0)

我们尝试了很多方法,包括这些答案中提到的步骤,但没有任何效果。经过大量的暴力破解和错误的破解,我们做到了。

错误很简单,有两个地方出现问题。这两个地方都没有在我们的 build.gradle 中的任何地方实现。所以它显然来自放置模块的组,在我们的例子中是 com.google.android.gms。所以,首先我们检查了我们为 gms 实现的版本是什么,才发现那里没有问题。虽然我们确实通过升级和降级来解决了一些问题,但实际上什么也没发生。

所以我们想,为什么不检查应用程序中的其他地方是正在实施的重复项之一,结果才发现,我们已经安装了 react-native-camera,它使用 play-services-vision 并已实施在它自己的 build.gradle 中。所以现在,我们脑子里的灯泡熄灭了,我们也在我们自己的 build.gradle 中实现了 react-native-camera。像这样 implementation project(':react-native-camera')。为什么不让它停止尝试从我们这端实施 play-services-vision-face-contour-internal?

这样就得出了解决方案,

implementation (project(':react-native-camera')) {
  exclude module: 'play-services-vision-face-contour-internal'
}

这样一来,重复的错误就不再显示了,我们可以安心地继续开发了。

我知道这里没有太多的技术知识,只是为了让有人在遇到这样的事情时也可以研究一下这样的事情。我不知道这是否有意义