Android 数据类型为 RxJava Observable<> 的房间出现编译错误

Android Room with RxJava Observable<> as data type giving compilation error

对于以下代码,我收到此错误:

错误:(26, 31) 错误:不确定如何将 Cursor 转换为此方法的 return 类型

@Dao
public interface FriendsDao {

@Query("SELECT * FROM Friends")
Flowable<List<Friends>> getAllFriends();

@Query("select * from Friends")
Observable<List<Friends>> getAllFriendsExample();

}

上面如果我删除 getAllFriendsExample() 一切正常我不明白为什么上面的代码适用于 flowable 但不适用于 observable。 任何人都可以帮助解决上述问题。

提前致谢

您收到错误消息是因为 Room 不支持 RxJava(1) Observable 类型。

对于 observable queries Room 支持来自 RxJava2 的 LiveDataPublisher 以及 Flowable

因为你需要这个来使用 Frodo(来自评论)并且 Frodo2 有一个错误你的选择是:

  • 等待库作者修复
  • 将你的 DAO class 放在存储库后面并使用 RxJava2InteropFlowable 转换为 RxJava1 Observable 这样你就可以使用 Frodo (v1)

由于 RxJava 1 已达到 End of Live,因此不推荐使用选项 2。