kotlin - 无法在Room dao界面中使用Completable

标签 kotlin rx-java android-room

我正在尝试在带有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'

根据此link,它得到Room的支持。

最佳答案

@Insert, @Update, and @Delete methods: Room 2.1.0 and higher supports return values of type Completable, Single, and Maybe.



将您的房间从1.1.1更新为2.1.0或更高版本,它将起作用。

关于kotlin - 无法在Room dao界面中使用Completable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53596861/

相关文章:

java - 有没有办法在 Android Studio 中将代码从 Java 转换为 Kotlin,而不使用复制/粘贴方法?

android - 在android中使用kotlin将字符串化的json转换为jsonArray

android - 如果发生 HttpException,Retrofit 和 RxJava 的单元测试永远不会完成

android - Room databaseBuilder 构建崩溃

android-recyclerview - 使用 LiveData、Room 和 DiffUtil 更新 RecyclerView 项目内的内部 View

android - 如何在 Jetpack Compose 中正确使用 StateFlow?

java - 如何在 Spring Boot 应用程序中记录 Activity 配置?

java - RxJava : How to express doOnFirst()?

java - RxJava 中的笛卡尔积

Androidx 模块,android :attr/ttcIndex & android:attr/fontVariationSettings not found