【问题标题】:Firebase Messaging on Android suddenly started crashing when message received收到消息时,Android 上的 Firebase Messaging 突然开始崩溃
【发布时间】:2020-10-27 05:25:17
【问题描述】:

目前正在使用 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) 版本。

【问题讨论】:

    标签: android firebase react-native firebase-cloud-messaging abstractmethoderror


    【解决方案1】:

    编辑 07/09/2020:我们发布了 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

    【讨论】:

    • 感谢@sam-stern 的更新!我也遇到了这个问题,所以请在有消息时告诉我们?
    • 可以通过将firebaseIidVersion = "20.2.1" 添加到android/build.gradle 来设置firebase Iid 吗?
    【解决方案2】:

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

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

    ext {
            googlePlayServicesVersion = "16.+"
            firebaseVersion = "17.3.4"
            firebaseMessagingVersion = "20.2.1"
        }
    

    【讨论】:

    • 这也是我最终做的,将其标记为正确答案
    • 我遇到了同样的问题,这救了我的命。谢谢!
    • 是的,降级有效。感谢您指出这一点。
    • 降级是正确的解决方案,有关更多信息,请参阅下面的答案。
    【解决方案3】:

    这些版本的问题完全相同。是的,在此之前它们是有效的 "@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 版本,并导致各种奇怪的问题。

    【讨论】:

    • 哇,它做到了,非常感谢!因为这个,我快疯了。
    • 对我来说是firebaseMessagingVersion,以防其他人看到这个并遇到同样的问题
    • 谢谢! @tenkay 我必须和你一样,implementation "com.google.firebase:firebase-messaging:${safeExtGet('firebaseMessagingVersion', '20.2.1')}"
    • 当您重新安装节点模块时,这不会被清除吗?它也不会致力于版本控制(假设你会 git-ignore node_modules)。我是 RN 新手,也许我误解了什么。
    • 是的,它会被擦除,在这种情况下,我建议您遵循公认的答案,但如果您需要更改 node_modules 中的任何内容,patch-package 是一个方便的解决方案
    【解决方案4】:

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

    implementation 'com.google.firebase:firebase-messaging:20.2.3'
    

    【讨论】:

    • 这对我有用。这两天一直在挠头。
    【解决方案5】:

    这个案例对我有用:

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

    参考to github issue

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多