刚刚在 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)"
在build.gradle中:
implementation "com.google.firebase:firebase-iid:21.1.0"
以上答案都不正确。它们都不能解决问题。 问题在于传递依赖。 您需要检查哪些库导致了问题并执行以下操作:
implementation 'com.google.firebase:firebase-messaging:22.0.0'
implementation ('com.google.firebase:firebase-iid:21.1.0') {
transitive = true
}
我通过使用 Firebase Android BoM
解决了这个问题就我而言,问题取决于消息传递和功能的共存。
因此:
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'
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 - 此处
当前的解决方法是显式添加 iid 版本,直到发布新的 BOM 版本:
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'
我通过重新定义我的依赖项实现来修复它,如下所示:
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'
然后,清理并重建项目。
您可以分享有关您的设置的更多信息吗?
修复它:
在项目/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 中已经存在的类。
firebase-bom
,因为您不信任 firebase 会检查所有正确的版本,那么您可以删除重复项。
./gradlew app:dependencies
(或用您的模块替换
app
)
iid:19.0.0
(或任何给您带来问题的版本)
\--- com.google.firebase:firebase-iid:19.0.0
+
,例如 (
+--- com.google.firebase:firebase-ml-vision
)
iid
api("com.google.firebase:firebase-ml-vision:$version") {
exclude group: 'com.google.firebase', module: 'firebase-iid'
}
implementation("com.google.firebase:firebase-iid:21.1.0")
将以上行添加到您的 android/app/build.gradle