1. 程式人生 > >RxJava:java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.

RxJava:java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.

在使用RxJava的時候,突然之間就出現了一個問題:

java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.

這是什麼鬼?竟然出現了一個Scheduler異常,一時之間,我懵了,怎麼回事啊,在沒封裝之前,還是好好的,這會怎麼就變成這個鬼樣子了。

原來的程式碼

return new Retrofit.Builder()
                .baseUrl(BASE_URI)
                .client(getClient())
                .addCallAdapterFactory
(RxJavaCallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .build();

修改之後的程式碼

return new Retrofit.Builder()
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create
()) .client(builder.build()) .baseUrl(BASE_URI) .build();

本人確實看不出那裡出問題了,後來在網上找了一下相關問題,不知道什麼時候gson介面卡改了,在使用介面卡的時候需要傳入gson物件。

正確的程式碼

return new Retrofit.Builder()
                .addConverterFactory(GsonConverterFactory.create(new Gson()))
                .addCallAdapterFactory
(RxJavaCallAdapterFactory.create()) .client(builder.build()) .baseUrl(BASE_URI) .build();

修正部落格:

各位博友們,關於RxJava出現這個問題,我想糾正一下,並非以上問題導致的,只是我沒有仔細往下看,只看到前面提到的異常。使用RxJava,如果出現異常,開頭基本上是java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.,我們往下看,或許是在異常的最後,我們可以發現正在的問題所在。