不能用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个选项来解决这个问题:
- 找出问题的库是否有RxJava 2版本,或自己将这些更新提交给项目。
- 使用akarnokd / RxJava2Interop将旧的
Observable
转换为RxJava 2.(RxJavaInterop.toV2Observable(Observable);
) - 将其他依赖切换回RxJava 1。