我在项目中使用带有文件室的RxJava3,但收到以下错误
错误:不确定如何将游标转换为此方法的返回类型(io.reactivex.rxjava3.core.Flowable>)
下面是我收到错误的DAO接口方法
@Query("SELECT * FROM wishlist_table")
Flowable<List<WishListMovie>> getWishList();我想这可能是因为我在成绩文件中使用了下面的依赖项:
implementation "androidx.room:room-rxjava2:$room_version"我试图找到RxJava 3的上述依赖项,但我找不到它。
我想知道如何在房间中使用RxJava 3,或者我应该在项目中使用RxJava 2。
发布于 2020-07-24 06:39:06
2020年7月22日
在Room 2.3.0-alpha02中添加了对RxJava3类型的支持。虽然它仍然是alpha,但你可以考虑这个选项。
根据版本描述:
与RxJava2类似,您可以声明DAO方法,它们的返回类型是可流动的、单一的、可能的和可完成的。
此外,还提供了一个新的工件androidx.room:room-rxjava3来支持RxJava3
发布于 2020-06-14 19:34:37
问题
我想知道如何在房间中使用RxJava 3,或者我应该在项目中使用RxJava 2。
结果
您不能将RxJava3与Room -rxjava2依赖一起使用。
解释
RxJava2和RxJava3是不同的。为了避免运行时错误(例如在链接期间),RxJava3选择了不同的包。这就是为什么返回的类型不匹配(不同的包)
解决方案
在出现room-rxjava3包之前,您必须使用RxJava2作为依赖项。
解决方法
您可以签出room-rxjava2,更改所有用于rxjava3的包,并在rxjava3上编译,然后使用此包。
发布于 2020-07-21 00:40:48
当前正在更新项目,但有相同的问题。
我使用room-rxjava2生成带有RxJava2类型的DAO(和前面一样)。但是对于我的业务逻辑,我使用https://github.com/akarnokd/RxJavaBridge来转换为RxJava3类型。
https://stackoverflow.com/questions/62371640
复制相似问题