当前位置: 首页 > 面试题库 >

Firebase消息传递-三星Android设备上的“警报太多”

李永寿
2023-03-14
问题内容

我们正在Android应用程序中使用Firebase Messaging,自上周以来,我们报告了三星设备发生的许多崩溃。
该问题与我们的任何课程都不相关 。我们没有使用AlarmManager等。

这是堆栈跟踪:

1)Parcel.java

Fatal Exception: java.lang.SecurityException: !@Too many alarms (500) registered from pid 13776 uid 10011
   at android.os.Parcel.readException(Parcel.java:1540)
   at android.os.Parcel.readException(Parcel.java:1493)
   at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:206)
   at android.app.AlarmManager.setImpl(AlarmManager.java:428)
   at android.app.AlarmManager.set(AlarmManager.java:215)
   at com.google.firebase.iid.FirebaseInstanceIdService.zzah(Unknown Source)
   at com.google.firebase.iid.FirebaseInstanceIdService.zzag(Unknown Source)
   at com.google.firebase.iid.FirebaseInstanceIdService.zzag(Unknown Source)
   at com.google.firebase.iid.FirebaseInstanceIdService.zzm(Unknown Source)
   at com.google.firebase.iid.zzb$2.run(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
   at java.lang.Thread.run(Thread.java:818)

2)在Binder.java中

Fatal Exception: java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) } in com.google.firebase.iid.FirebaseInstanceIdService$1@12533ba
   at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:891)
   at android.os.Handler.handleCallback(Handler.java:746)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:148)
   at android.app.ActivityThread.main(ActivityThread.java:5443)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Caused by java.lang.RuntimeException: Failure from system
   at android.app.ContextImpl.sendBroadcast(ContextImpl.java:772)
   at android.content.ContextWrapper.sendBroadcast(ContextWrapper.java:396)
   at com.google.firebase.iid.FirebaseInstanceIdService$1.onReceive(Unknown Source)
   at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:881)
   at android.os.Handler.handleCallback(Handler.java:746)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:148)
   at android.app.ActivityThread.main(ActivityThread.java:5443)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Caused by android.os.DeadObjectException
   at android.os.BinderProxy.transactNative(Binder.java)
   at android.os.BinderProxy.transact(Binder.java:503)
   at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:3075)
   at android.app.ContextImpl.sendBroadcast(ContextImpl.java:767)
   at android.content.ContextWrapper.sendBroadcast(ContextWrapper.java:396)
   at com.google.firebase.iid.FirebaseInstanceIdService$1.onReceive(Unknown Source)
   at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:881)
   at android.os.Handler.handleCallback(Handler.java:746)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:148)
   at android.app.ActivityThread.main(ActivityThread.java:5443)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

您有类似的问题吗?您知道什么可能是潜在的问题吗?我正在使用firebase@9.6.1


问题答案:

好消息!在最新版本10.0中,firebase团队解决了三星设备中的 警报过多 的问题,这是补丁说明:

已修复 -导致错误地设置了额外警报的问题,导致某些Samsung设备的堆栈跟踪中的警报太多而导致崩溃。

好的编程!



 类似资料:
  • 我不明白如何从iOS设备向另一个iOS设备发送消息,我试图理解Firebase通知和Google云消息之间的区别。 null Google Cloud Messaging:它将消息从服务器发送到设备(下游)或设备发送到服务器(上游)!! 上游示例: 如果我需要从一个设备发送一个推送消息到另一个设备呢!这是否意味着在设备发送消息到服务器之后,我必须编程firebase服务器发送推送到客户端?真让人摸

  • 我试图从C#中的服务器发送推送通知,我使用了正确的注册令牌和API密钥,但仍然得到以下响应。 我按照这个网址来实现这个解决方案通过C#使用FCM(Firebase云消息传递)发送推送到Android 目前,我正在尝试向单个设备发送通知,但也希望同时向多个设备发送通知,我使用了url中给出的,但它不起作用。如果我必须同时向多个设备发送通知,我该怎么办? 这是我的密码

  • 我正在使用库进行消息推送。 在构建应用程序时,我看到一个警告,上面写着 firebase say发布说明https://developers.google.com/android/guides/releases#may_23_2018 Firebase核心库用于分析,如果我不包括该库,会发生什么?我已经在使用 此外,我发现的库版本必须与库相同,以避免任何构建错误。 比如下面 如果我在应用程序gra

  • 我必须在SpringJava中为多层架构制作一个RESTAPI,其中需要为Firebase云消息传递(FCM)构建DAO、控制器和服务管理器,以向android应用程序发送推送通知消息,但我无法在Java中配置服务器以向设备发送通知。我怎么能?

  • FCM服务未向我的iOS应用程序发送消息。 > App CAN成功接收APNs令牌和实例ID令牌 App CAN使用推送通知实用程序利用. p8令牌在后台成功接收来自APN的推送 #2中使用的相同APNs密钥上传到Firebase控制台 应用程序无法接收Firebase控制台中Notification Composer发送的消息,也无法使用CURL请求接收消息。 应用程序在通过FCM发送时不显示任

  • 在搜索文档之后,我找不到任何关于如何在没有使用外部服务器的情况下使用FCM向设备发送消息的信息。 例如,如果我正在创建一个聊天应用程序,我将需要向用户发送关于未读消息的推送通知,因为他们不会一直在线,而且我不可能在后台有一个始终连接到实时数据库的持久服务,因为这会占用太多资源。 那么当某个用户“B”向他/她发送聊天消息时,我将如何向用户“a”发送推送通知呢?我需要一个外部服务器来完成这个任务吗?还