【发布时间】:2021-02-16 03:56:59
【问题描述】:
文件Crime.kt
@Entity
data class Crime (@PrimaryKey val id: UUID = UUID.randomUUID(),
var title: String = "",
var date: Date = Date(),
var isSolved: Boolean = false)
文件 CrimeTypeConverters.kt
class CrimeTypeConverters {
@TypeConverter
fun fromDate(date: Date?): Long?{
return date?.time
}
@TypeConverter
fun toDate(millisSinceEpoch: Long?): Date? {
return millisSinceEpoch?.let {
Date(it)
}
}
@TypeConverter
fun toUUID(uuid: String?): UUID? {
return UUID.fromString(uuid)
}
@TypeConverter
fun fromUUID(uuid: UUID?): String? {
return uuid?.toString()
}
}
错误:
错误:无法弄清楚如何将此字段保存到数据库中。您可以考虑为其添加类型转换器。
私有 java.util.Date 日期;
C:\Users\ASUS\AndroidStudioProjects\CriminalIntentv2\app\build\tmp\kapt3\stubs\debug\com\bignerdranch\android\criminalintent\database\CrimeDatabase.java:8:警告:未向注释提供架构导出目录处理器,因此我们无法导出架构。您可以提供 room.schemaLocation 注释处理器参数或将 exportSchema 设置为 false。
公共抽象类犯罪数据库扩展 androidx.room.RoomDatabase {
^[WARN] 请求增量注释处理,但支持被禁用,因为以下处理器不是增量的:androidx.room.RoomProcessor (NON_INCREMENTAL)。
任务:app:kaptDebugKotlin 失败
【问题讨论】:
-
你在哪里有
@TypeConverters注释来将 Room 指向你的@TypeConverter? -
顺便说一句,UUID 作为 id 通常是一个不好的做法,如果你只是想方便的话:@PrimaryKey(autoGenerate = true)