49

目前使用 react-native、react-native-firebase 和 react-native-push-notification。一切都很好,直到今天突然火力基地消息开始导致应用程序崩溃。错误消息如下:

    Process: com.packagename, PID: 30087
    java.lang.AbstractMethodError: abstract method "com.google.android.gms.tasks.Task com.google.firebase.iid.WithinAppServiceBinder$IntentHandler.zza(android.content.Intent)"
        at com.google.firebase.iid.WithinAppServiceBinder.zza(com.google.firebase:firebase-iid@@20.2.2:9)
        at com.google.firebase.iid.zzaw.zza(com.google.firebase:firebase-iid@@20.2.2:30)
        at com.google.firebase.iid.zzaw.onServiceConnected(com.google.firebase:firebase-iid@@20.2.2:59)
        at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:2067)
        at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:2099)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:237)
        at android.app.ActivityThread.main(ActivityThread.java:8016)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076)

收到通知但未触发数据消息时会发生错误。此外,在导致崩溃之前接收并处理通知。

我认为该错误可能是由更改 react-native-firebase/app 版本引起的,因此我将 git 上的项目恢复为以前的工作版本。但是,清理和重建后我仍然会遇到同样的错误。即使在本机反应端没有设置通知侦听器,它也会发生,尽管我不确定实际本机代码需要什么。可能是什么问题?我正在使用以前可用的 react-native-firebase/messaging (7.1.5) 和 react-native-firebase/app (7.2.0) 版本。

4

6 回答 6

45

编辑 2020年 7 月 9日:我们已经发布了修复此问题firebase-iidfirebase-messaging版本20.2.3,请升级到最新版本。


[此处为 Firebaser] 它看起来像昨天的版本firebase-messagingfirebase-iid包含可能导致此崩溃的错误。我们正在努力修复。

目前最好的办法是使用 6 月 18 日发布的版本: https ://firebase.google.com/support/release-notes/android#2020-06-18

  • com.google.firebase:firebase-messaging:20.2.1
  • com.google.firebase:firebase-iid:20.2.1

我们正在努力修复并希望尽快发布新版本。当我们这样做时,我将更新此答案,并且发布说明将在此处提供: https ://firebase.google.com/support/release-notes/android

于 2020-07-08T14:56:19.687 回答
39

我们尝试添加firebaseMessagingVersion = "20.2.1"到根项目中的 ext 部分,android/build.gradle为我们修复了它。我们研究了该safeExtGet方法,发现它会尝试从根项目文件中提取顶级变量。

通过这种方式,我们不需要接触节点模块。

ext {
        googlePlayServicesVersion = "16.+"
        firebaseVersion = "17.3.4"
        firebaseMessagingVersion = "20.2.1"
    }
于 2020-07-07T04:05:38.160 回答
12

这些版本的问题完全相同。是的,它们在此之前是有效的 "@react-native-firebase/app": "^6.7.1", "@react-native-firebase/messaging": "^6.7.1",

已解决的问题:

  1. 转到 react-native-push-notification/build.gradle
  2. 将 def firebaseVersion = safeExtGet('firebaseVersion', '+') 更改为 def firebaseVersion = safeExtGet('firebaseVersion', '20.2.1')

它为我们挑选了不稳定的 20.2.2 版本,并导致了各种奇怪的问题。

于 2020-07-07T02:25:06.713 回答
5

这次升级为我解决了这个问题

implementation 'com.google.firebase:firebase-messaging:20.2.3'
于 2020-07-16T05:51:44.847 回答
0

这个案例对我有用:

implementation "com.google.firebase:firebase-messaging:20.2.3"
implementation "com.google.firebase:firebase-analytics:17.4.4"

参考github问题

于 2020-07-17T19:55:30.830 回答
0

此问题已通过此依赖项的最新版本修复。 https://firebase.google.com/support/release-notes/android#messaging_v20-2-3

于 2020-07-21T01:07:13.387 回答