我正在尝试将 @Dao 对象的所有方法转换为可挂起以供 Kotlin 协程使用。
当我将挂起修饰符添加到工作函数定义并尝试在 Android Studio 中构建时,它无法生成 XXXXDao_Impl.java 类
一个非常精简的例子:
import androidx.lifecycle.LiveData
import androidx.room.*
@Database(entities = [SomeData::class], version = 1)
abstract class SomeDatabase : RoomDatabase() {
abstract fun getDao(): SomeDataDao
}
@Entity
data class SomeData(@PrimaryKey val id: Int, val name: String)
@Dao
interface SomeDataDao {
@Query("SELECT * FROM SomeData") // Works
fun getAllSync(): List<SomeData>
@Query("SELECT * FROM SomeData") // Works
suspend fun getAllSuspend(): List<SomeData>
@Query("SELECT * FROM SomeData") // Works
fun getAllSyncLiveData(): LiveData<List<SomeData>>
@Query("SELECT * FROM SomeData") // …Run Code Online (Sandbox Code Playgroud)