在模块中发现重复的类com.google.android.gms.internal.firebase_messaging.zza

iyfamqjs  于 2022-11-03  发布在  Android
关注(0)|答案(7)|浏览(145)

刚开始在Android构建上出现此错误。请帮助。“在模块jetified-firebase-iid-19.0.0-运行时. jar(com.google.firebase:firebase-iid:19.0.0)和jetified-firebase-messaging-22.0.0-runtime.jar(com. google. firebase:firebase-messaging:22.0.0)中发现了重复的类com.google.android.gms.internal.firebase_messaging.zza”

km0tfn4u

km0tfn4u1#

在构建中。gradle:

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

jslywgbw2#

上面的答案没有一个是正确的,也没有一个能解决这个问题。问题出在传递依赖关系上。你需要检查是哪个库导致了这个问题,然后做如下操作:

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

2ic8powd3#

我通过使用Firebase Android物料清单解决了此问题
在我的例子中,问题取决于消息传递功能的共存。
所以从这个:

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

efzxgjgh4#

我遇到了同样的问题。
我通过如下重新定义依赖关系实现来修复它:
在构建中。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:4.2.1
然后,清理并重新生成项目
您能否分享更多有关设置的信息?

axzmvihb

axzmvihb5#

使用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
}

在project/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中已经存在的类。

n53p2ov0

n53p2ov06#

如果你不想使用firebase-bom,因为你不相信firebase会检查所有正确的版本,那么你可以删除重复的版本。
1.运行./gradlew app:dependencies(或用您的模块替换app
1.搜索iid:19.0.0(或任何出现问题的版本)
1.在清单中向上卷动,以查看资源库的来源。
您应该会看到类似于\--- com.google.firebase:firebase-iid:19.0.0的内容
1.继续滚动,直到找到依赖项及其来源模块,标记为+ eg(+--- com.google.firebase:firebase-ml-vision
1.在项目中找到依赖项并移除重复的iid

api("com.google.firebase:firebase-ml-vision:$version") {
    exclude group: 'com.google.firebase', module: 'firebase-iid'
}
kxkpmulp

kxkpmulp7#

BOM 31.x目前确实存在此问题。
请在此处查看问题:

https://github.com/firebase/firebase-android-sdk/issues/4206

已通过此处的问题解决,但尚未正式发布:

https://github.com/firebase/firebase-android-sdk/pull/4225

备注:

  • 这个问题还没有解决,31.0.1只包含了一个对crashlytics崩溃错误的修复。这就是为什么这个问题仍然没有解决的原因。这里的团队将做一个修复关闭这个问题,然后做一个发布可能与发布说明表明它是修复的,当它被修复https://firebase.google.com/support/release-notes/android-这里 *
    目前的解决方法是在发布新的BOM版本之前显式添加iid版本:
implementation platform('com.google.firebase:firebase-bom:31.0.0')

implementation 'com.google.firebase:firebase-functions'
implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.firebase:firebase-iid:21.1.0'

相关问题