不能用RxKotlin“观察”主线程

我试图通过使用主线程观察可观察的:

// Kotlin Code Observable .observeOn(AndroidSchedulers.mainThread()) 

但我得到以下错误:

  Type Mismatch: Required: rx.Scheduler! Found: io.reactivex.Scheduler! 

我订阅的Observable来自一个用Java编写的库,因此使用RxJava。

我是愚蠢的,错过了什么? 我puzzeled:$

提前致谢 :)

  Required: rx.Scheduler! 

Required意味着签名是Observable.observeOn(rx.Scheduler)

  Found: io.reactivex.Scheduler! 

Found意味着签名是io.reactivex.Scheduler AndroidSchedulers.mainThread()

这意味着Observable是RxJava 1的可观察对象,而RxAndroid版本是为RxJava 2构建的。既然您提到observable是由库提供的,那么意味着该库是使用RxJava 1构建的。

你有3个选项来解决这个问题:

  1. 找出问题的库是否有RxJava 2版本,或自己将这些更新提交给项目。
  2. 使用akarnokd / RxJava2Interop将旧的Observable转换为RxJava 2.( RxJavaInterop.toV2Observable(Observable);
  3. 将其他依赖切换回RxJava 1。