android-room - 当方法返回 RxJava Completable 时,Android Room 生成带有错误的 DAO
问题描述
我在 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 参数,但得到了同样的错误。
解决方案
正如在这个stackoverflow question中所说,启用 j ava8 兼容性可以解决问题。
将此添加到您想要的项目模块 gradle 文件中,在 android 闭包内:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
推荐阅读
- php - 通过Retrofit2将字符串类别的Api请求发送到Mysql数据库服务器但不起作用
- reactjs - 触发一个函数来关闭 ReactJS 中的模态窗口
- c# - 使用 Unity 编辑器,我如何从我的计算机上传文件并将其显示在 3D 对象或平面上?
- c# - 使用 C# 序列化二进制字符串并使用 C++ 反序列化
- android - Android - 整合 facebook 受众网络后崩溃率增加。如何解决?
- java - POP3 连接关闭且无提示
- android - 未找到长 org.tensorflow.contrib.android.RunStats.allocate() 的实现
- php - phpwkhtmltopdf中的破碎图像
- ruby-on-rails - Rails text_field_tag 值未正确获取
- html - 只能设置背景颜色但不能设置背景图像