React-native-onesignal: [崩溃][ANDROID] 尝试在空对象引用上调用虚拟方法“boolean android.app.NotificationChannel.isDeleted()”

创建于 2021-01-23  ·  8评论  ·  资料来源: OneSignal/react-native-onesignal

描述:

一些用户的 crashlytics 报告了 Android 上的崩溃。

环境
套餐

"react": "16.13.1",
"react-native": "0.63.4",
"react-native-onesignal": "^4.0.3",

设备

Android: 8
Devices: HUAWEI P10 lite,  Sasmung Galaxy S8

重现问题的步骤:
接收推送通知 OneSignal。
我没有更多信息。

还要别的吗:

错误

Fatal Exception: java.lang.NullPointerException
Attempt to invoke virtual method 'boolean android.app.NotificationChannel.isDeleted()' on a null object reference

堆栈跟踪

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.app.NotificationChannel.isDeleted()' on a null object reference
       at android.os.Parcel.readException(Parcel.java:1960)
       at android.os.Parcel.readException(Parcel.java:1900)
       at android.app.INotificationManager$Stub$Proxy.getNotificationChannels(INotificationManager.java:1618)
       at android.app.NotificationManager.getNotificationChannels(NotificationManager.java:515)
       at com.onesignal.NotificationChannelManager.processChannelList(NotificationChannelManager.java:236)
       at com.onesignal.OneSignal$5.complete(OneSignal.java:970)
       at com.onesignal.OneSignalRemoteParams.processJson(OneSignalRemoteParams.java:205)
       at com.onesignal.OneSignalRemoteParams.access$100(OneSignalRemoteParams.java:12)
       at com.onesignal.OneSignalRemoteParams$1.onSuccess(OneSignalRemoteParams.java:150)
       at com.onesignal.OneSignalRestClient$5.run(OneSignalRestClient.java:269)
       at java.lang.Thread.run(Thread.java:784)
Help Wanted Possible Bug

最有用的评论

你好呀,
我遇到了同样的问题。 一位用户在一天内在 Crashlytics 中发生了大约 218 次崩溃。
设备品牌 - Oppo
操作系统版本 - 9
堆栈跟踪-
com.onesignal.NotificationChannelManager.processChannelList
致命异常:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“boolean android.app.NotificationChannel.isDeleted()”

有什么解决办法吗?

所有8条评论

得到了?

你好,
非常感谢您提供堆栈跟踪。

@Jeasmine来自这里

从表面上看,OneSignal 通知管理器似乎正在跟踪对通道的引用,这些通道在某些时候会被删除,因此为空。

我们将不得不进一步深入研究这一点。

感谢您报告此事。

@Jeasmine @rgomezp在 Native Android SDK com 上的另一个报告。 onesignal:OneSignal :[4.0.0, 4.99.99]
99% 的三星 Galaxy SM-G950F (Android 9) 崩溃(仅限 1 位用户)
不幸的是不知道重现步骤。

1 - 尝试在我的设备上禁用应用程序组并发送推送,但没有崩溃。
2 - 尝试将 android_channel_id 保存到我的 api 请求中,删除 id,没有崩溃
3 - 尝试重命名 android_channel_id,没有变化

@kperreau @luan-nvg 关于您尝试帮助我们复制的内容的任何其他想法?

您使用的是自定义 android 频道 ID 还是 OneSignal android 频道 ID?

您好,我也遇到了同样的问题,但我的应用程序在 Native Android SDK 上运行,没有未解决的问题,所以我会在这里发表评论。 以下是有关发生在我身上的问题的一些信息:

  1. OneSignal SDK 是 4.0.0
  2. 设备是Android 9,Oppo Realme C1,90%发生在后台,目前发生了87个事件,只有这个用户
  3. 不知道如何重现,因为它是一个非常小的用户,我们没有设备可以测试
  4. 导致问题的代码部分与之前提到的@rgomezp相同

我现在能做些什么来处理或抓住它吗? 很担心看到崩溃的发生,谢谢

任何新闻 ? 由于这次崩溃,我在 Play 商店中收到了一些不好的评论。
三星 S8 用户(Android 9)在启动时立即崩溃。

@jfishman1我正在使用自定义 android 频道 ID。

你好呀,
我遇到了同样的问题。 一位用户在一天内在 Crashlytics 中发生了大约 218 次崩溃。
设备品牌 - Oppo
操作系统版本 - 9
堆栈跟踪-
com.onesignal.NotificationChannelManager.processChannelList
致命异常:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“boolean android.app.NotificationChannel.isDeleted()”

有什么解决办法吗?

@rgomezp
有任何更新吗? 迄今为止,此问题已导致大约 2-3k 次崩溃。 因此,我的 Crashlytics 报告一团糟。 请提供解决方案。

此页面是否有帮助?
0 / 5 - 0 等级