Gson 解析错误

data 是个 val 非空字段,但 gson 在解析 json(data 字段是ks)时报错:空指针异常。

因为使用了 RxJava,所以报错中有 Rx 的 schedule 的报错。

image.png
这种就是,gson 和 kotlin 的配合中的问题。

解决办法:改用 var 并且可空,或使用 Moshi 框架。 更多参考我的另外一篇文章

更多报错详情:

最关键的一句报错:

  1. Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter it

报错详情:

04-23 20:30:07.446 25245-25332/com.bjy.meeting D/GraphicBuffer: register, handle(0xda987120) (w:768 h:898 s:768 f:0x1 u:0x000b00)
04-23 20:30:07.518 25245-25386/com.bjy.meeting I/HttpUtils: <-- 200 OK http://192.168.8.83:8080/api/unis/meeting/candidates (208ms)
04-23 20:30:07.518 25245-25386/com.bjy.meeting I/HttpUtils:     Content-Type: application/json
04-23 20:30:07.518 25245-25386/com.bjy.meeting I/HttpUtils:     Connection: close
04-23 20:30:07.518 25245-25386/com.bjy.meeting I/HttpUtils:     Content-Length: 125
04-23 20:30:07.518 25245-25386/com.bjy.meeting I/HttpUtils:     serverId: 9b0582c368b7422d858f88874f4ca023
04-23 20:30:07.518 25245-25386/com.bjy.meeting I/HttpUtils:     unisId: 65da665572014f12ad9b9faef80066ee
04-23 20:30:07.518 25245-25386/com.bjy.meeting I/HttpUtils:     Cookie: JSESSIONID=C879020EA33BBD6ED408194F59805C9D
04-23 20:30:07.518 25245-25386/com.bjy.meeting I/HttpUtils:  
04-23 20:30:07.518 25245-25386/com.bjy.meeting I/System.out: close [socket][/192.168.8.102:55769]
04-23 20:30:07.519 25245-25386/com.bjy.meeting I/HttpUtils:     body:{"requestId":"9262d08d057a4b4e8907a2a6fa9aad95","responseTimestamp":"19700124121047","message":"SERVER TIMEOUT","status":200}
04-23 20:30:07.519 25245-25386/com.bjy.meeting I/HttpUtils: <-- END HTTP
04-23 20:30:07.520 25245-25386/com.bjy.meeting D/jch: RTC_log_1.9.15 DEBUG:  [ 25386 : 1653 ] ====>code     =  : 200
04-23 20:30:07.520 25245-25386/com.bjy.meeting D/jch: RTC_log_1.9.15 DEBUG:  [ 25386 : 1653 ] ====>message  =  : OK
04-23 20:30:07.521 25245-25386/com.bjy.meeting D/jch: RTC_log_1.9.15 DEBUG:  [ 25386 : 1653 ] ====>protocol =  : http/1.1
04-23 20:30:07.521 25245-25386/com.bjy.meeting D/jch: RTC_log_1.9.15 DEBUG:  [ 25386 : 1653 ] ====>string   =  : {"requestId":"9262d08d057a4b4e8907a2a6fa9aad95","responseTimestamp":"19700124121047","message":"SERVER TIMEOUT","status":200}
04-23 20:30:07.523 25245-25386/com.bjy.meeting D/jch: RTC_log_1.9.15 DEBUG:  [ 25386 : 1653 ] ====>响应 =  : ResponseBoomRx(requestId=9262d08d057a4b4e8907a2a6fa9aad95, responseTimestamp=19700124121047, message=SERVER TIMEOUT, status=200, data=null)
04-23 20:30:07.525 25245-25245/com.bjy.meeting E/MyApplication: MyApplication setRxJavaErrorHandler Fatal Exception thrown on Scheduler.
04-23 20:30:07.525 25245-25245/com.bjy.meeting W/System.err: java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.
04-23 20:30:07.525 25245-25245/com.bjy.meeting W/System.err:     at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:111)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at android.os.Handler.handleCallback(Handler.java:815)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:104)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at android.os.Looper.loop(Looper.java:207)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5692)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err: Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter it
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at com.bjy.meeting.kt.activity.dialog.CreateMeetingDialog$getDepartmentList$1.invoke(CreateMeetingDialog.kt)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at com.bjy.meeting.kt.activity.dialog.CreateMeetingDialog$getDepartmentList$1.invoke(CreateMeetingDialog.kt:48)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at com.bjy.meeting.kt.common.biz.BoomBizManager$getDepartmentList$1.onNext(BoomBizManager.kt:206)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at com.bjy.meeting.kt.common.biz.BoomBizManager$getDepartmentList$1.onNext(BoomBizManager.kt:200)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:200)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:252)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109)
04-23 20:30:07.526 25245-25245/com.bjy.meeting W/System.err:     ... 7 more
04-23 20:30:07.526 25245-25245/com.bjy.meeting E/CrashReport: Java Crash Happen cause by main(1)
04-23 20:30:07.691 25245-25245/com.bjy.meeting I/CrashReport: user log size:0
04-23 20:30:07.691 25245-25245/com.bjy.meeting E/CrashReport: stack frame :8, has cause true
04-23 20:30:10.958 25245-25245/com.bjy.meeting E/CrashReport: # CRASH PROCESS: com.bjy.meeting
04-23 20:30:10.958 25245-25245/com.bjy.meeting E/CrashReport: # CRASH THREAD: main
04-23 20:30:10.958 25245-25245/com.bjy.meeting E/CrashReport: # REPORT ID: 9bba2291-377e-4fc9-bd47-b8f9ed02e028
04-23 20:30:10.958 25245-25245/com.bjy.meeting E/CrashReport: # CRASH DEVICE: nb6797_6c_m ROOTED
04-23 20:30:10.959 25245-25245/com.bjy.meeting E/CrashReport: # RUNTIME AVAIL RAM:2542419968 ROM:6614364160 SD:6614364160
04-23 20:30:10.959 25245-25245/com.bjy.meeting E/CrashReport: # RUNTIME TOTAL RAM:3090071552 ROM:11918766080 SD:11918766080
04-23 20:30:10.959 25245-25245/com.bjy.meeting E/CrashReport: # CRASH STACK: 
04-23 20:30:10.959 25245-25245/com.bjy.meeting E/CrashReport: java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.
        at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:111)
        at android.os.Handler.handleCallback(Handler.java:815)
        at android.os.Handler.dispatchMessage(Handler.java:104)
        at android.os.Looper.loop(Looper.java:207)
        at android.app.ActivityThread.main(ActivityThread.java:5692)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
     Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter it
        at com.bjy.meeting.kt.activity.dialog.CreateMeetingDialog$getDepartmentList$1.invoke(CreateMeetingDialog.kt)
        at com.bjy.meeting.kt.activity.dialog.CreateMeetingDialog$getDepartmentList$1.invoke(CreateMeetingDialog.kt:48)
        at com.bjy.meeting.kt.common.biz.BoomBizManager$getDepartmentList$1.onNext(BoomBizManager.kt:206)
        at com.bjy.meeting.kt.common.biz.BoomBizManager$getDepartmentList$1.onNext(BoomBizManager.kt:200)
        at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:200)
        at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:252)
        at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109)
        at android.os.Handler.handleCallback(Handler.java:815) 
        at android.os.Handler.dispatchMessage(Handler.java:104) 
        at android.os.Looper.loop(Looper.java:207) 
        at android.app.ActivityThread.main(ActivityThread.java:5692) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749) 
04-23 20:30:10.959 25245-25245/com.bjy.meeting E/CrashReport: #++++++++++++++++++++++++++++++++++++++++++#
04-23 20:30:10.959 25245-25245/com.bjy.meeting V/SQLiteStatements: /data/user/0/com.bjy.meeting/databases/bugly_db_: "DELETE FROM t_lr WHERE _tp = 1"
04-23 20:30:10.965 25245-25245/com.bjy.meeting V/SQLiteTime: /data/user/0/com.bjy.meeting/databases/bugly_db_: "DELETE FROM t_lr WHERE _tp = 1" took 6.000 ms
04-23 20:30:10.965 25245-25245/com.bjy.meeting D/CrashReport: [Database] deleted t_lr data 1
04-23 20:30:10.966 25245-25245/com.bjy.meeting V/SQLiteStatements: /data/user/0/com.bjy.meeting/databases/bugly_db_: "INSERT OR REPLACE  INTO t_lr(_th,_pc,_tp,_tm) VALUES ('main(1)','com.bjy.meeting',1,1619181007691)"
04-23 20:30:10.971 25245-25245/com.bjy.meeting V/SQLiteTime: /data/user/0/com.bjy.meeting/databases/bugly_db_: "INSERT OR REPLACE  INTO t_lr(_th,_pc,_tp,_tm) VALUES (?,?,?,?)" took 5.000 ms
04-23 20:30:10.972 25245-25245/com.bjy.meeting D/CrashReport: [Database] insert t_lr success.