且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

房间持久性:错误:实体和Pojos必须具有可用的公共构造函数

更新时间:2023-01-12 08:37:53

以前也有类似的问题.

首先,我已经更新/添加了apply plugin: 'kotlin-kapt'以进行升级.

First I've updated/added apply plugin: 'kotlin-kapt' to gradle.

接下来,我在gradle中使用它代替了annotationProcessor:

Next, I've used it instead of annotationProcessor in gradle:

kapt "android.arch.persistence.room:compiler:1.0.0-alpha4"

最后一件事是创建一个不可变的数据类:

Tha last thing was to create an immutable data class:

@Entity(tableName = "movies")
data class MovieKt(
    @PrimaryKey
    val id : Int,
    val title: String,
    val overview: String,
    val poster_path: String,
    val backdrop_path: String,
    val release_date: String,
    val vote_average: Double,
    val isFavorite: Int
)

更新:

当在同一Android模块中具有模型的类和数据库的类时,此解决方案有效.如果您在Android库模块中有模型类,而在主模块中有其余代码,则Room将无法识别它们.

This solution works when you have classes for the model and classes for Database in the same Android Module. If you have model classes in Android Library module and the rest of the code in your main module, Room will NOT recognize them.