1

从服务器接收数据消息时,显示此错误日志:

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.sample.test, PID: 30964 java.lang.RuntimeException: Unable to start service com.huawei.hms.rn.push.remote.HmsPushMessageService@d69f855 with Intent { act=com .huawei.push.action.MESSAGING_EVENT pkg=com.sample.test (has extras) }: java.lang.NullPointerException: Attempt to call virtual method 'java.lang.String android.content.Context.getPackageName()' on a在 android.app.ActivityThread.access$2900(ActivityThread.java:296) 在 android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4683) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2259) 的空对象引用) 在 android.os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:213) 在 android.app.ActivityThread.main(ActivityThread.java:8178) 在 java.lang .reflect.方法。在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101) 的 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) 调用(本机方法) 原因:java。 lang.NullPointerException:尝试在 com.huawei.hms.rn.push.logger.HMSLogger.setupEventMap(HMSLogger.java 的空对象引用上调用虚拟方法'java.lang.String android.content.Context.getPackageName()' :292) at com.huawei.hms.rn.push.logger.HMSLogger.(HMSLogger.java:78) at com.huawei.hms.rn.push.logger.HMSLogger.getInstance(HMSLogger.java:95) at com .huawei.hms.rn.push.remote.HmsPushMessageService.onMessageReceived(HmsPushMessageService.java:35) at com.huawei.hms.push.HmsMessageService.a(HmsMessageService.java:185) at com.huawei.hms.push.HmsMessageService .onStartCommand(HmsMessageService.java:131) 在 com.huawei.hms.rn.push.remote。HmsPushMessageService.onStartCommand(HmsPushMessageService.java:90) 在 android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4663) 在 android.app.ActivityThread.access$2900(ActivityThread.java:296) 在 android.app.ActivityThread$H。 handleMessage(ActivityThread.java:2259) 在 android.os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:213) 在 android.app.ActivityThread.main(ActivityThread.java :8178) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) 在 com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1101)app.ActivityThread$H.handleMessage(ActivityThread.java:2259) 在 android.os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:213) 在 android.app.ActivityThread .main(ActivityThread.java:8178) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) 在 com.android.internal .os.ZygoteInit.main(ZygoteInit.java:1101)app.ActivityThread$H.handleMessage(ActivityThread.java:2259) 在 android.os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:213) 在 android.app.ActivityThread .main(ActivityThread.java:8178) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) 在 com.android.internal .os.ZygoteInit.main(ZygoteInit.java:1101)

4

3 回答 3

1

这个问题是一个已知的错误,它已经被纠正了。请在此处将 React Native Push Plugin 更新到最新版本5.0.2.301

于 2020-11-18T06:48:15.727 回答
1

版本5.0.2.301解决了我使用react-native@^0.63.4. 但它不适用于今天可用的最新版本的插件 ( 5.1.1-301)。

@shirley 仅供参考

于 2021-05-05T22:41:58.970 回答
0

看来您正在使用数据消息,如果是,请告诉我您如何从通知中获取数据?EX:在这段代码中,我们收到从控制台或服务器发布的“id”数据消息:

   override fun onMessageReceived(message: RemoteMessage?) {
    Log.i("OnMesageReceived", "onMessageReceived is called");

    //data notification -get data
    val id = message!!.dataOfMap["id"]

}

于 2020-10-06T06:02:05.230 回答