【问题标题】:RX java io.reactivex.rxjava3.android.schedulers.AndroidSchedulers unable to executeRX java io.reactivex.rxjava3.android.schedulers.AndroidSchedulers 无法执行
【发布时间】:2020-07-26 07:12:56
【问题描述】:

实现'io.reactivex.rxjava3:rxandroid:3.0.0' 实现'io.reactivex.rxjava3:rxjava:3.0.0'

val TAG:String = RXKotlinDemoClass::class.java.simpleName

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    var observable = Observable.just("Goat","Dog","Cow")
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread()).subscribe({
        value -> println(TAG+"$value")
    },{
        error -> println(TAG+"$error")
    },{
        println(TAG+"onComplete")
    }

    )

}

例外: java.lang.NoSuchMethodError: 没有静态方法元工厂(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle ;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;在类 Ljava/lang/invoke/LambdaMetafactory;或其超类('java.lang.invoke.LambdaMetafactory' 的声明出现在 /apex/com.android.runtime/javalib/core-oj.jar 中) 在 io.reactivex.rxjava3.android.schedulers.AndroidSchedulers.(AndroidSchedulers.java:33) 在 io.reactivex.rxjava3.android.schedulers.AndroidSchedulers.mainThread(AndroidSchedulers.java:44) 在 com.android.myfirstapp.RXKotlinDemoClass.onCreate(RXKotlinDemoClass.kt:19) 在 android.app.Activity.performCreate(Activity.java:7802) 在 android.app.Activity.performCreate(Activity.java:7791) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 在 android.os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

【问题讨论】:

标签: rx-java rx-android kotlin-android-extensions


【解决方案1】:

我已经降级了build.gradle

来自

implementation 'io.reactivex.rxjava3:rxandroid:3.0.0' 
implementation 'io.reactivex.rxjava3:rxjava:3.0.0'

implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
implementation 'io.reactivex.rxjava2:rxjava:2.2.10'

它按预期工作。

【讨论】:

  • 那太糟糕了。你知道为什么AndroidSchedulers 不包含在 rxJava3 中了吗?
【解决方案2】:

使用 Rx 3.0 时遇到了同样的问题。我需要将这些语句添加到应用程序的build.gradle 文件的android 部分:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    相关资源
    最近更新 更多