【问题标题】:Android Room generates DAO with error when method returns RxJava Completable当方法返回 RxJava Completable 时,Android Room 生成带有错误的 DAO
【发布时间】:2018-11-04 08:40:56
【问题描述】:

我在 Dao 接口中有 @Insert 方法,如下所示:

@Insert(onConflict = REPLACE)
fun insertOrUpdateAllMessages(vararg messages: QuestMessageDbModel): Completable

当我构建项目时出现错误:

error: local variable questsModels is accessed from within inner class; needs to be declared final
      __insertionAdapterOfQuestDbModel.insert(questsModels);
                                              ^

当我打开生成的 QuestDao_Impl.java 时,我看到了这样的代码:

我做错了什么?我试图用 List 替换 vararg 参数,但得到了同样的错误。

【问题讨论】:

    标签: android-room


    【解决方案1】:

    正如stackoverflow question 中所说,启用 java8 compatibility 可以解决问题。

    将此添加到您想要的项目模块 gradle 文件中,在 android 闭包内:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    

    【讨论】:

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