RuN*_*280 5 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()
Run Code Online (Sandbox Code Playgroud)
这是我的相关代码:
@Insert
fun insert(kanal: Kanal): Completable
@Update
fun update(kanal: Kanal): Completable
@Delete
fun delete(kanal: Kanal): Completable
Run Code Online (Sandbox Code Playgroud)
而我的依赖:
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'
Run Code Online (Sandbox Code Playgroud)
根据此链接,它得到Room的支持。
@ Insert,@ Update和@Delete方法:Room 2.1.0和更高版本支持Completable,Single和Maybe类型的返回值。
将您的房间从升级1.1.1到2.1.0或更高,它将可以正常工作。