soword科技言
永久公益免费API接口
提供永久免费的API接口,查看更多API接口,如果您有其他免费API资源,请联系我们,造福人类。
提供商务开发:小程序,系统,APP
定制开发,免费评估,免费咨询,价格便宜,售后保障,前往开发服务中心联系开发客服中心
收到消息后,Android上的Firebase Messaging突然开始崩溃

当前使用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端未设置任何通知侦听器,也会发生这种情况,尽管我不确定实际的native代码需要什么。可能是什么问题?我正在使用以前可以正常运行的版本react-native-firebase / messaging(7.1.5)和react-native-firebase / app(7.2.0)。

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

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

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

这些版本完全相同。是的,它们在此“ @ 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版本,该版本不稳定,并且会引起各种奇怪的问题。



2023-03-22 10:04:19

新人小程序+APP定制199元起


发放福利,助力中小企业发展,真正在互联网中受益

点击询问定制

广告服务展示