【发布时间】:2017-11-13 02:45:26
【问题描述】:
我正在将一个项目转换为 Kotlin,并且我正在尝试使我的模型(也是我的实体)成为一个数据类 我打算使用 Moshi 转换来自 API 的 JSON 响应
@Entity(tableName = "movies")
data class MovieKt(
@PrimaryKey
var id : Int,
var title: String,
var overview: String,
var poster_path: String,
var backdrop_path: String,
var release_date: String,
var vote_average: Double,
var isFavorite: Int
)
由于以下错误,我无法构建应用程序
实体和 Pojos 必须有一个可用的公共构造函数。您可以有一个空的构造函数或参数与字段匹配的构造函数(按名称和类型)。 找不到字段的设置器。
我发现的例子和this不远
关于如何解决的想法?
【问题讨论】:
-
这是哪个 kotlin 版本?您还可以打印完整的错误消息吗? Room 应该能够正确处理该数据类,因为它只有 1 个接收所有字段的构造函数。
-
确保构造函数参数的名称和类型与 Room 所期望的一致。这也可能发生在与 Java 的关键字冲突中。例如,Java 关键字
static在 Kotlin 中是允许的,但是当它被编译下来时,看起来他们用另一个名称替换它,导致 Room 注释处理器无法与该字段匹配。 -
你也可以发布你的 DAO 吗?
-
你解决这个问题,添加空白构造函数
标签: android kotlin android-room android-architecture-components