Удалось ли кому-нибудь использовать Room вместо многомодульной установки Kotlin?

Удалось ли кому-нибудь использовать многомодульную установку Kotlin для Room поверх Android.

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

Всякий раз, когда у меня есть оба вышеуказанных класса в основном модуле, все компилируется правильно.

Но если я перенесу класс Student в другой модуль библиотеки Android и School в основной модуль. Он выдает ошибку времени компиляции как:

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

Любая идея, как решить эту проблему?


person user2422047    schedule 21.04.2018    source источник


Ответы (1)


Я была такая же проблема. Entities и Room DAO помещены в один и тот же модуль, все в порядке, размещение объектов в отдельной компиляции разрыва модуля. В моем случае проблема заключалась в том, чтобы поместить объявление перечисления в тот же файл, что и сущность. Объявление enum в отдельном файле решило проблему.

person Fireworks    schedule 01.03.2019
comment
у вас есть пример проекта github? Я не могу разделить Entitites и DAO на разные модули, всегда пишет Error: cannot access EntitiesClass - person mochadwi; 20.07.2020