Журнал ошибок:
ошибка: Не удается выяснить, как сохранить это поле в базе данных. Вы можете рассмотреть возможность добавления конвертера типов для него. приватный финал java .util.Listbyte []> photo = null;
Я сделал весь ответ в stackoverflow, но он все еще не работает.
Memo.class
@Entity
data class Memo (
@PrimaryKey(autoGenerate = true) val id: Int?,
@ColumnInfo(name = "title") val title: String?,
@ColumnInfo(name = "content") val content: String?,
@ColumnInfo(name = "photo", typeAffinity = ColumnInfo.BLOB) val photo: List<ByteArray>?
)
MemoDatabase.class
@Database(entities = arrayOf(Memo::class), version = 1)
@TypeConverters(Converters::class)
abstract class MemoDatabase : RoomDatabase() {
abstract fun memoDao(): MemoDao
companion object {
@Volatile
private var INSTANCE: MemoDatabase? = null
fun getDatabase(context: Context): MemoDatabase {
val tempInstance = INSTANCE
if (tempInstance != null) {
return tempInstance
}
synchronized(this) {
val instance = Room.databaseBuilder(
context.applicationContext,
MemoDatabase::class.java,
"memo_database"
).build()
INSTANCE = instance
return instance
}
}
}
}
Converters.class
class Converters {
@TypeConverter
fun fromString(value: String): List<ByteArray> {
val type = object : TypeToken<List<ByteArray>>() {}.type
return Gson().fromJson(value, type)
}
@TypeConverter
fun fromList(list: List<ByteArray>): String {
val type = object : TypeToken<List<ByteArray>>() {}.type
return Gson().toJson(list, type)
}
}