首页 > 解决方案 > 无法在 Room dao 界面中使用 Completable

问题描述

我正在尝试在带注释的方法Completable上使用 Dao 类,@Insert但是在尝试编译项目时,出现此错误:

error: Methods annotated with @Insert can return either void, long, Long, long[], Long[] or List<Long>.
public abstract io.reactivex.Completable insert(@org.jetbrains.annotations.NotNull()

这是我的相关代码:

@Insert
fun insert(kanal: Kanal): Completable
@Update
fun update(kanal: Kanal): Completable
@Delete
fun delete(kanal: Kanal): Completable

还有我的依赖:

def room_version = "1.1.1"
implementation "android.arch.persistence.room:runtime:$room_version"
kapt "android.arch.persistence.room:compiler:$room_version"
implementation "android.arch.persistence.room:rxjava2:$room_version"
implementation 'io.reactivex.rxjava2:rxkotlin:2.2.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'

根据此链接,它由 Room 支持。

标签: kotlinrx-javaandroid-room

解决方案


@Insert、@Update 和@Delete 方法:Room 2.1.0 及更高版本支持 Completable、Single 和 Maybe 类型的返回值。

将您的房间从1.1.1to2.1.0或更高更新,它将起作用。


推荐阅读