oppo、vivo部分手机报错
你的运行环境
OPPO R9s、OPPO R9s Plus、OPPO R9sk、OPPO A57、Vivo Y66
根据日志,这几款手机系统版本都是android 6.0.1
- 插件版本:
- react-native 版本:0.57.8
期望效果
运行正常
实际效果
因为原生报错,导致整个界面卡死了
重现步骤
打开app,进入登录界面,点击登录没反应
Debug logs
java.lang.RuntimeException: Cannot convert argument of type class android.os.Bundle
at com.facebook.react.bridge.Arguments.fromJavaArgs(Arguments.java:191)
at com.facebook.react.bridge.JavaScriptModuleRegistry$JavaScriptModuleInvocationHandler.invoke(JavaScriptModuleRegistry.java:92)
at java.lang.reflect.Proxy.invoke(Proxy.java:393)
at $Proxy5.emit(Unknown Source)
at cn.jpush.reactnativejpush.JPushModule.sendEvent(JPushModule.java:223)
at cn.jpush.reactnativejpush.JPushModule.notifyJSDidLoad(JPushModule.java:173)
at java.lang.reflect.Method.invoke(Native Method)
at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)
at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:160)
at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
at android.os.Looper.loop(Looper.java:179)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:192)
at java.lang.Thread.run(Thread.java:818)
说明
targetSDKVersion: 25
只有这几款手机会报错,做了下面的实验:
- 将js里面的notifyJSDidLoad删除 --- 运行正常
- 将JPushModule.java的223行,加上try/catch --- 运行正常,但是奇怪的是catch里面并没有执行到