Avatar ·

Android Room 在 Kotlin 中的 "Cannot access database on the main thread" 错误

你好!我是 Kotlin Android 开发的新手,使用 Room 进行本地数据存储。我写了一个简单的 SELECT 查询,但应用崩溃并报错:"Cannot access database on the main thread"。这是我的代码: ```kotlin // DAO @Dao interface UserDao { @Query("SELECT * FROM users WHERE id = :userId") fun getUser(userId: Int): User } // Activity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val db = Room.databaseBuilder( applicationContext, AppDatabase::class.java, "my-db" ).build() val user = db.userDao().getUser(1) // 这里出错! textView.text = user.name } } ``` 我理解 Room 禁止在主线程上操作数据库,但如何正确获取数据?我尝试过使用 async/await,但没