Rx Android вылетает при использовании AndroidScheduler.mainThread () - PullRequest
0 голосов
/ 04 августа 2020

Я использовал Rx Java и Rx Android для получения данных из api и обновления моего представления. Но после использования Rx Android AndroidScheduler.mainThread () приложение вылетает с неизвестными исключениями.

Также я использую Rx Java и Rx Android версии 3.0.0 в соответствии с рекомендациями RX

Исключение:

2020-08-04 22:15:24.879 6831-6831/com.saswata.illeo E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.saswata.illeo, PID: 6831
    java.lang.BootstrapMethodError: Exception from call site #1 bootstrap method
        at io.reactivex.rxjava3.android.schedulers.AndroidSchedulers.<clinit>(AndroidSchedulers.java:33)
        at io.reactivex.rxjava3.android.schedulers.AndroidSchedulers.mainThread(AndroidSchedulers.java:44)
        at com.saswata.illeo.view.activity.ListActivity.fetchData(ListActivity.kt:33)
        at com.saswata.illeo.view.activity.ListActivity.onCreate(ListActivity.kt:26)
        at android.app.Activity.performCreate(Activity.java:7032)
        at android.app.Activity.performCreate(Activity.java:7023)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1236)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2814)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2943)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1630)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6626)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
     Caused by: java.lang.NoClassDefFoundError: Invalid descriptor: IL.
        at io.reactivex.rxjava3.android.schedulers.AndroidSchedulers.<clinit>(AndroidSchedulers.java:33) 
        at io.reactivex.rxjava3.android.schedulers.AndroidSchedulers.mainThread(AndroidSchedulers.java:44) 
        at com.saswata.illeo.view.activity.ListActivity.fetchData(ListActivity.kt:33) 
        at com.saswata.illeo.view.activity.ListActivity.onCreate(ListActivity.kt:26) 
        at android.app.Activity.performCreate(Activity.java:7032) 
        at android.app.Activity.performCreate(Activity.java:7023) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1236) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2814) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2943) 
        at android.app.ActivityThread.-wrap11(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1630) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6626) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811) 

Код:

onserverInst.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe({//someWork},{//someError})

1 Ответ

0 голосов
/ 04 августа 2020

Я только что понял, что мы можем сделать то же самое:

onserverInst
    .subscribeOn(Schedulers.io())
    .subscribe({
         runOnUiThread{
             // UI work
         }
         //someWork
    },{//someError})

без использования Rx Android, так как я думаю, что сейчас это довольно бесполезно. (По крайней мере сейчас)

...