我是Android开发的新手,我试图通过遵循Android架构组件来制作一个Notes应用程序,但在运行时,我在DAO中遇到了错误,如果有人能提供帮助,我将不胜感激。下面是我得到的代码和错误。
DAO:-
'''
@Dao
interface NoteDao {
@Insert(onConflict = OnConflictStrategy.IGNORE)
suspend fun insert(note :Note)
@Delete
suspend fun delete(note : Note)
@Query("SELECT * FROM Notes_table order by id")
fun getALL(): LiveData<List<Note>>
@Query("SELECT * From Notes_table where id= :pos")
fun getSpecific(pos :Int):Note
}
'''
实体:-
'''
@Entity(tableName = "Notes_table")
data class Note(@ColumnInfo(name="noteText") val text:String) {
@PrimaryKey(autoGenerate = true) var id:Int =0
}
'数据库:-
'''
@Database(entities = [Note::class],version = 1,exportSchema = false)
abstract class NoteDatabase : RoomDatabase() {
abstract fun getNoteDao():NoteDao
companion object{
@Volatile
private var Instance: NoteDatabase?=null
fun getDatabase(context :Context):NoteDatabase{
return Instance ?: synchronized(this){
val instance=Room.databaseBuilder(context.applicationContext,
NoteDatabase::class.java,"note_database").build()
Instance=instance
instance
}
}
}
}
导入DAO:-
import androidx.lifecycle.LiveData
import androidx.room.
实体的进口:-
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
数据库导入:-
import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
如果需要,我可以提供其余的代码。
5条答案
按热度按时间unhi4e5o1#
在注解部分的帮助下,通过阅读文档,我发现我的DAO出了问题,最终它与我添加到依赖项中的ROOM版本有关,我只是更新了那些,现在它工作得很好。
ffdz8vbo2#
今天遇到了同样的问题,通过将
Room
版本从2.3.0
更新到2.4.0-beta02
来修复。版本可以在这里找到:https://developer.android.com/jetpack/androidx/releases/room#2.3.0-alpha04ilmyapht3#
我正在更新房间版本:2.4.2
4xrmg8kj4#
通过将房间版本提升到“2.4.0-beta 01”修复
0md85ypi5#
2023年10月
kapt
注解处理工具不适合我使用suspend
函数。我做了什么来修复它:
根构建.gradle
我注意到 * Kotlingradle插件 * 版本必须匹配 *ksp插件 * 版本,否则它不工作(ksp版本1.8不适合我)。
app/build.gradle