react native jpush 点击通知报错


(zhufengqin) #1

安装官方一步步配置,结果遇到这个错误,有可能是什么原因引起的,谢谢

错误详情

java.lang.RuntimeException: Unable to start receiver cn.jpush.reactnativejpush.JPushModule$JPushReceiver: java.lang.NullPointerException: Attempt to invoke virtual method 'com.facebook.react.bridge.JavaScriptModule com.facebook.react.bridge.ReactApplicationContext.getJSModule(java.lang.Class)' on a null object reference
	at android.app.ActivityThread.handleReceiver(ActivityThread.java:2616)
	at android.app.ActivityThread.access$1700(ActivityThread.java:151)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1380)
	at android.os.Handler.dispatchMessage(Handler.java:102)
	at android.os.Looper.loop(Looper.java:135)
	at android.app.ActivityThread.main(ActivityThread.java:5254)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.facebook.react.bridge.JavaScriptModule com.facebook.react.bridge.ReactApplicationContext.getJSModule(java.lang.Class)' on a null object reference
	at cn.jpush.reactnativejpush.JPushModule$JPushReceiver.onReceive(JPushModule.java:258)
	at android.app.ActivityThread.handleReceiver(ActivityThread.java:2609)
	... 9 more

#2

你用的那个版本的插件,其中用的SDK版本是?


(zhufengqin) #3

“jpush-react-native”: “^1.3.6”
“react-native”: “0.39.2”,


(KenChoi) #4

你之前有没有杀掉进程?或者之前没有启动过应用,而直接收到通知的?


(zhufengqin) #5

启动的呀,在后台运行着呢,android平台


(KenChoi) #6

这不是配置的错误了,而是收到了通知,但是 JPushModule 没有执行构造函数,直接启动了 Receiver,拿到的 ReactContext 为空,这个问题,最近再更新版本,在 catch exception 后重新启动一下应用。


RN android 集成jpush, Unable to start receiver
jpush react native android 持续收到同一条推送
(zhufengqin) #7

你说的意思我明白,但是如何解决呢。
理论上,默认点击通知就会回调应用,现在报错了,还要重启应用,工作没法进行了。。


(KenChoi) #8

解决的方法就是在你收到通知后,如果已经在后台运行

你在这里设置一个跳转的 Activity,你自己定义的点击通知后应该跳转的界面。你可以声明这样一个 Activity,但是界面可以用 JS 来写。


react native 集成jpush插件:在模拟器下和实体机上测试时表现不一致
(zhufengqin) #9

这个内容不是JPushModule里面的内容吗,我默认的配置,应该不需要重写这个onReceive方法呀
有没有可能是权限方面的设置呢


(KenChoi) #10

对,但是默认的就是重启应用。而你说了重启应用会导致你工作没法进行,所以你需要改一下这一块。


(zhufengqin) #11

也不知道怎么整的,现在有的手机报错,有的不报错,但是点击通知时候,还是不能将应用程序调出来
点击了通知栏里的消息后,消息就消失了,但是主屏幕还是在home页面
大神们帮忙分析一下可能的原因


#12

(KenChoi) #13

看下日志,有没有走到 OnReceive 点击事件中启动 Activity 那里。