【问题标题】:Android room insert with Completable not working? methods annotated with @insert can return either void,long?带有 Completable 的 Android 房间插入不起作用?使用 @insert 注释的方法可以返回 void,long?
【发布时间】:2019-02-27 12:14:00
【问题描述】:

我使用的版本是

implementation 'io.reactivex.rxjava2:rxjava:2.2.4'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
implementation 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
implementation 'android.arch.persistence.room:runtime:2.1.0-alpha04'
kapt 'android.arch.persistence.room:compiler:2.1.0-alpha04'
implementation 'android.arch.persistence.room:rxjava2:2.1.0-alpha04'

道就是

@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertStore(stores: Stores): Completable

【问题讨论】:

  • 问题是什么?
  • 我无法将函数的返回类型设置为 Completable
  • Completable 没有返回类型

标签: android rx-java2 android-room


【解决方案1】:

从这个伟大的article 在媒体上,我发现了;

从 Room 2.1.0-alpha01 开始,带有 @Insert、@Delete 或 @Update 注释的 DAO 方法支持 Rx 返回类型 Completable、Single 和 Maybe

即使我使用的是最新版本的房间,我也遇到了问题,

implementation 'android.arch.persistence.room:runtime:2.1.0-alpha04'
kapt 'android.arch.persistence.room:compiler:2.1.0-alpha04'
implementation 'android.arch.persistence.room:rxjava2:2.1.0-alpha04'

我发现问题是因为在我的项目中使用了 androidx,所以为了解决这个问题,我必须使用 androidx 房间组件。

implementation 'androidx.room:room-runtime:2.1.0-alpha04'
kapt 'androidx.room:room-compiler:2.1.0-alpha04'
implementation 'androidx.room:room-rxjava2:2.1.0-alpha04'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    相关资源
    最近更新 更多