RxJava:java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
阿新 • • 發佈:2019-02-15
在使用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.,我們往下看,或許是在異常的最後,我們可以發現正在的問題所在。