AndroidX Room generated class error: "Class is public, should be declared in a file named class.java"

AndroidX Room generated class error: "Class is public, should be declared in a file named class.java"

许多关于 SO 的类似问题,但它们与 AndroidX Room 库生成的 类 无关。请不要将此问题标记为重复,因为类似问题涉及传统 Java 类,而不是 Room 生成的问题。

在 Android 房间的 documentation 之后,我定义了一个数据库和 table 实体如下:

数据库:

@Database(entities = [User::class], version = 1, exportSchema = false)
abstract class UserDatabase : RoomDatabase() {
    ...
}

实体:

@Entity
data class User(
    ...
)

但是在构建时,我收到一个跟踪生成文件的错误 user.java:

error: class User is public, should be declared in a file named User.java

有人在使用 Room 时 运行 遇到过这个错误吗?

将实体移动到它自己的名为 User.kt 的文件中。