Android Room 在方法 returns RxJava Completable 时生成错误的 DAO
Android Room generates DAO with error when method returns RxJava Completable
我在 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 参数,但得到了同样的错误。
如本文所述, enabling java8 compatibility 解决了问题。
将此添加到您想要的项目模块 gradle 文件中,在 android 闭包内:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
我在 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 参数,但得到了同样的错误。
如本文所述
将此添加到您想要的项目模块 gradle 文件中,在 android 闭包内:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}