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 का उपयोग करने की कोशिश की, लेकिन समझ नहीं पाया। कृपया मार्गदर्शन करें।