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

34

我正在尝试使用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.

我试过搜索完全相同的错误,但是没有找到任何结果,然后我又搜索了重复类的问题,没有确定的解决方法,每个人都分享了他们的经验,但是没一个适用于我。

这是我的 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'

当我注释掉这一行时,在构建项目时就不会出错(尚未添加功能)。

谢谢。

6个回答

38
在build.gradle:Module中添加以下内容:
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 文件中的 Project 部分:

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

在buildscript-->dependencies中。


3
它对我起作用了,使用了每个依赖项的更新版本。 - Dulanga
这个解决方案对我没有用,但是添加 Firebase Bom 就可以了。 - Ucdemir

8

我也遇到了使用firebase-ml-vision 24.1.0版本时的同样问题。

官方给出了解决方案:

Firebase 发布说明 MLKIT 自助解决方式

因此,我需要添加一个play-services-vision依赖项,尽管我之前并不需要 :

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

我希望他们会在后续版本中解决这个问题。


4
我有同样的问题,如果你正在使用Firebase依赖项,请在app/build.gradle中更新到最新版本,查看附加过程。
dependencies {
 
    implementation platform('com.google.firebase:firebase-bom:29.0.0')
}

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


4

鉴于此,最好的选择是迁移到我们在6月初推出的新ML Kit SDK。在Firebase ML中,本地API已被视为弃用,更新/改进仅在新SDK中可用。为了帮助您进行切换,可以在此处找到迁移指南。


2
谢谢您的回答,先生。我已经完成了。 - Tugay

2

我们曾经面临过类似的问题。我将在此添加一些步骤,希望那些遇到这个问题的人可以根据这些步骤自行解决。

我们的问题是:

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'
}

通过这样做,重复错误停止显示,我们可以安心地继续开发。

我知道这里没有太多技术知识,只是为了让其他人在遇到类似问题时也能参考。不知道这是否有意义。


0
我通过定义自定义版本的依赖项来修复了它。
implementation ("com.google.firebase:firebase-ml-vision:24.1.0")
implementation ("com.google.android.gms:play-services-vision:20.1.1") <--
implementation ("com.google.android.gms:play-services-vision- 
common:19.1.1")<--

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