当前位置: 首页 > 知识库问答 >
问题:

RxJava 3对Room的支持

栾耀
2023-03-14

我在我的项目中使用RxJava3和Room,但我得到了以下错误

错误:不确定如何将游标转换为此方法的返回类型(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与Room一起使用,或者我应该在我的项目中使用RxJava 2。

共有3个答案

堵泽宇
2023-03-14

当前正在更新项目,并且存在相同的问题。

我使用room-rxjava2生成带有RxJava2类型的DAO(和以前一样)。但是对于我的业务逻辑,我使用https://github.com/akarnokd/RxJavaBridge转换为RxJava3类型。

邵崇凛
2023-03-14

我想知道如何将RxJava 3与Room一起使用,或者我应该在我的项目中使用RxJava 2。

您不能将RxJava3与Room“room-rxjava2”依赖项一起使用。

RxJava2和RxJava3是不同的。为了避免运行时错误(例如链接期间),RxJava3选择了不同的包。这就是返回的类型不匹配的原因(不同的包)

在出现room-rxjava3包之前,您必须使用RxJava2作为依赖项。

您可以签出room-rxjava2,更改rxjava3的所有包,编译aginst rxjava3,然后使用这个包。

饶骁
2023-03-14

2020年7月22日

在房间2.3.0-alpha02中添加了对RxJava3类型的支持。虽然它仍在alpha中,但您可以考虑此选项。

根据发布说明:

与RxJava2类似,您可以声明DAO方法,其返回类型是Flowable、单、也许和Compltable。
此外,还有一个新的工件androidx.room:room-rxjava3可用于支持RxJava3

 类似资料:
  • 我试图使用testNG运行suite,但我遇到了一个错误:我在这个网站和web上搜索了一些关于这个问题的信息,但没有成功。 测试: 我在网上寻找答案,但没有成功。 有人能帮我解决这个问题吗?

  • 安装设置 Docusaurus 支持用 TypeScript 编写的主题组件。要开始使用 TypeScript,请在项目中添加 @docusaurus/module-type-aliases 以及一些 @types 依赖项: npm Yarn npm install --save-dev typescript @docusaurus/module-type-aliases @types/react

  • 房间 Fieldsid (ID!) 唯一 IDname (String!) 名字homeId (String!) 该 Home 下的 RoomuserId (String!) 用户 IDcreatedAt (String) 创建时间updatedAt (String) 上次更新日间

  • 搜索之后,我发现了两个有趣的答案: > 对 javaFX 的本机映像格式支持 使用javaFX控制gif图像 但是正如我所看到的,javaFX不支持APNG图像。如何使用任何外部库或编写一些代码来解决此问题。我需要一个解决方案... 谢谢你的帮助。

  • Hibernate 也可以被配置为一个 JCA 连接器(JCA connector)。更多信息请参看网站。请注意,Hibernate 对 JCA 的支持,仍处于实验性阶段。

  • 我正在我的新应用程序中实现房间数据库。在设置数据库时,我会遇到以下错误: 这就是我的数据库类的样子: 实体: 这是转换器: 当我删除@database注释时,错误就消失了,所以我想可能是实体本身出了问题。尝试将val更改为var,添加@columninfo(Name=...)但没有任何帮助。 --StackTrace给出了以下信息: