【问题标题】:Duplicate class com.google.android.gms.internal.firebase_messaging.zza found in modules在模块中发现重复的类 com.google.android.gms.internal.firebase_messaging.zza
【发布时间】:2021-05-13 07:10:16
【问题描述】:

刚开始在 Android 版本上出现此错误。请帮忙。 “在模块 jetified-firebase-iid-19.0.0-runtime.jar (com.google.firebase:firebase-iid:19.0.0) 和 jetified-中发现重复的类 com.google.android.gms.internal.firebase_messaging.zza firebase-messaging-22.0.0-runtime.jar (com.google.firebase:firebase-messaging:22.0.0)"

【问题讨论】:

    标签: android firebase


    【解决方案1】:

    在 build.gradle 中:

    implementation "com.google.firebase:firebase-iid:21.1.0"
    

    【讨论】:

    • 这可能有效,但不是最佳选择。版本 2.2.0.0 有重大更改,建议修复问题而不是添加此依赖项。他们删除了已弃用的 FirebaseInstanceId 并将其替换为 Firebase 安装。 firebase.google.com/support/release-notes/…
    【解决方案2】:

    我使用Firebase Android BoM解决了这个问题

    在我的情况下,问题取决于 messagingfunctions 的共存。

    所以从这里开始:

    implementation 'com.google.firebase:firebase-messaging:22.0.0'
    implementation 'com.google.firebase:firebase-functions-ktx:20.0.0'
    

    到这里:

    implementation platform('com.google.firebase:firebase-bom:28.2.1')
    implementation 'com.google.firebase:firebase-functions-ktx'
    implementation 'com.google.firebase:firebase-messaging'
    

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。

      我通过像这样重新定义我的依赖项实现来修复它:


      在 build.gradle 中:

      implementation 'com.google.firebase:firebase-analytics:19.0.0'
      implementation 'com.google.firebase:firebase-auth:17.0.0'
      implementation 'com.google.firebase:firebase-messaging:22.0.0'
      

      请注意我在 buildscript 中的配置:com.android.tools.build:gradle:4.2.1

      然后,清理并重建项目。

      您能否分享有关您的设置的更多信息?

      【讨论】:

      • 我将所有 firebase npm 模块更新到最新版本并修复了该问题。包是“messaging”、“IId”、“dynamic-links”和“app”
      【解决方案4】:

      以上答案均不正确。他们都没有解决问题。 问题在于传递依赖。 您需要检查导致问题的库并执行以下操作:

      implementation 'com.google.firebase:firebase-messaging:22.0.0'
      implementation ('com.google.firebase:firebase-iid:21.1.0') {
          transitive = true
      }
      

      【讨论】:

        【解决方案5】:

        如果您不想使用 firebase-bom,因为您不相信 firebase 会检查所有正确的版本,那么您可以删除重复项。

        1. 运行./gradlew app:dependencies(或用您的模块替换app
        2. 搜索iid:19.0.0(或任何有问题的版本)
        3. 在列表中向上滚动以查看库的来源。

        你应该看到类似\--- com.google.firebase:firebase-iid:19.0.0

        1. 继续滚动,直到找到它所在的依赖项和模块,并标有+,例如 (+--- com.google.firebase:firebase-ml-vision)
        2. 在你的项目中找到依赖并删除重复的iid
        api("com.google.firebase:firebase-ml-vision:$version") {
            exclude group: 'com.google.firebase', module: 'firebase-iid'
        }
        

        【讨论】:

          【解决方案6】:

          使用 react-native-push-notification ^3.1.9,我遇到了同样的错误。

          修复它:

          在项目/build.gradle:

          buildscript {
              ext {
                  googlePlayServicesVersion = "17.0.0"
                  firebaseMessagingVersion = "20.1.0"
                  firebaseVersion = "20.1.0"
          
                  // other settings
              }
           // other settings
          }
          

          在项目/app/build.gradle:

          dependencies {
              implementation "com.google.firebase:firebase-messaging:20.1.0"
              // other implementations
          }
          

          原因:react-native-push-notification 包指定对firebase-messaging:+ 的依赖:要求获取最新版本。 所以,gradle 上传最新的com.google.firebase:firebase-messaging:22.x.x,它在 firebase-iid 中声明了已经存在的类。

          【讨论】:

            猜你喜欢
            • 2021-08-03
            • 1970-01-01
            • 1970-01-01
            • 2019-11-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-02-07
            • 1970-01-01
            相关资源
            最近更新 更多