使用Room over多模块Kotlin设置有没有人成功?

时间:2018-04-21 09:26:35

标签: android android-room android-architecture-components

使用Room over Android多模块Kotlin设置有任何成功。

@Entity data class School(@Embedded val student: Student) data class Student(val age: Int = 0)

每当我在主模块中同时拥有上述两个类时,一切都会正确编译。

但是,如果我将学生类移动到另一个Android库模块,并将学校移动到主模块中。它抛出编译时错误:

error: Entities and Pojos must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type). Tried the following constructors but they failed to match: Student(int) : [arg0 : null]

注意:在调试中发现这可能是名称错误问题。如果我将Student类更改为data class Student(val arg0: Int = 0),则编译正常。 看起来在编译时age公开为arg0

知道如何解决此问题吗?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。实体和Room DAO可以将所有模块放置在同一个模块中,将实体放在单独的模块中断编译中。就我而言,问题是将枚举声明与实体放在同一文件中。在单独的文件中声明枚举可以解决此问题。