Тип номераКонвертер (список <ByteArray>) не работает - PullRequest
0 голосов
/ 18 февраля 2020

Журнал ошибок:

ошибка: Не удается выяснить, как сохранить это поле в базе данных. Вы можете рассмотреть возможность добавления конвертера типов для него. приватный финал 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)
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...