Проблема с объявлением базы данных в комнате AndroidAndroid

Форум для тех, кто программирует под Android
Anonymous
Проблема с объявлением базы данных в комнате Android

Сообщение Anonymous »

Если я оставлю @database , как и в коде, я получаю неудачу KSP с кодом выхода: Processing_error . Если я удалю его, то в то же время база данных не объявлена, и я получаю еще одну ошибку.TASK и пользователь таблицы (которые логичны, поскольку они не объявляются в сущностях).
Кроме того, учитывайте, что я новичок в Android Studio и не полностью понимаю, как все это работает и не знает, как мой код «должен».@Database(entities = [User::class, Task::class, Stat::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun getUserDao(): UserDao
abstract fun getStatDao(): StatDao
abstract fun getTaskDao(): TaskDao

companion object {
const val NAME = "App_DB"
}

}
< /code>
Вот 3 класса, которые используются: < /p>
Пользователь: < /p>
@Entity
data class User(
@PrimaryKey val id: Int = 0,
@ColumnInfo var db_username: String = "",
@ColumnInfo var db_level: Int = 1,
@ColumnInfo var db_coins: Int = 0,
@ColumnInfo var db_xp: Int = 0,
@ColumnInfo var db_stats: MutableList = mutableListOf()
) {
...

// Convert to UI
fun updateUiValues() {
...
}
fun updateDbValues() {
...
}

init {
updateUi()
}

fun updateLevel () {
...
}
}

Stat:
@Entity
class Stat (
@PrimaryKey(autoGenerate = true) val id: Int = 0,
@ColumnInfo var name: String,
@ColumnInfo var description: String = "",
@ColumnInfo var db_tasks: MutableList = mutableListOf(),
@ColumnInfo val owner: User
) {
@ColumnInfo var db_level = 1
@ColumnInfo var db_totalXP = 0
@ColumnInfo var db_currentXP = 0
@ColumnInfo var db_neededXP = 1

...

fun updateUiValues() {
...
}
fun updateDbValues() {
...
}

init {
owner.db_stats.add(this)
updateTotalXP()
updateUi()
}
fun updateNeededXP (level: Int) {
...
}
fun updateTotalXP () {
...
}
fun updateLevel () {
...
}

fun updateGeneral () {
...
}
}
< /code>
задача: < /p>
@Entity
data class Task(
@PrimaryKey(autoGenerate = true) val id:Int = 0,
@ColumnInfo var name: String,
@ColumnInfo var xpPerUnit: Int = 1,
@ColumnInfo var xpToday: Int = 0,
@ColumnInfo var notes: String = "",
@ColumnInfo val stat: Stat
) {
@ColumnInfo var db_level = 1
@ColumnInfo var db_totalXP = 0
@ColumnInfo var db_currentXP = 0
@ColumnInfo var db_neededXP = 1

...

init {
stat.tasks.add(this)
updateUi()
}

fun updateUiValues() {
...
}
fun updateDbValues() {
...
}

fun updateNeededXP (level: Int) {
...
}
fun updateLevel () {
...
}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... droid-room

Вернуться в «Android»