【发布时间】:2020-08-12 07:15:29
【问题描述】:
当我尝试在使用 sqlite 数据库时启动我的应用程序时遇到此错误。
我在单独的文件中有 3 个数据类:
@Entity(tableName = "movies")
data class MovieNews(
@PrimaryKey(autoGenerate = true)
var id: Int? = null,
@SerializedName("movie_db")
@Embedded(prefix = "movies_")
val movies: List<Movies>? = null,
)
data class Movies(
val description: String? = null,
@Embedded(prefix = "actors_")
val actors: List<Actors>? = null,
)
data class Actors(
val name: String? = null
val age: Int? = null
)
当我启动应用程序时出现错误:
错误:实体和 POJO 必须具有可用的公共构造函数。你 可以有一个空的构造函数或参数匹配的构造函数 字段(按名称和类型)。 - java.util.List
如何解决此错误?
不知道这是否与问题有关,但我有这个警告
w: [kapt] 请求增量注释处理,但是 支持被禁用,因为以下处理器不是 增量:androidx.room.RoomProcessor (DYNAMIC)。
我也看到了很多关于这个错误的问题,没有一个能解决我的问题
更新:
如果我注释掉 Embedded 行,应用程序会编译。
我深入研究了 stackoverflow 问题,发现Embedded 和列表可能存在问题。
@SerializedName("movie_db")
@Embedded(prefix = "movies_")
val movies: List<Movies>? = null,
【问题讨论】: