Android Room: Wie behebe ich den Fehler "Cannot access database on the main thread" bei einer einfachen SELECT-Abfrage?
Hallo zusammen! Ich bin ein Anfänger in der Android-Entwicklung mit Kotlin und verwende Room für eine lokale Datenbank. Ich habe eine einfache Entity User und ein DAO mit der Methode getAllUsers(), die eine Liste aller Benutzer zurückgibt. Ich rufe diese Methode aus einer Activity auf, um die Daten in einem RecyclerView anzuzeigen. Aber die App stürzt mit folgendem Fehler ab:
\n\njava.lang.IllegalStateException: Cannot access database on the main thread since it may potentially lock the UI for a long period of time.\n\nHier ist mein Code:
\n\n// Entity\n@Entity(tableName = "users")\ndata class User(\n @PrimaryKey val id: Int,\n val name: String,\n val email: String\n)\n\n// DAO\n@Dao\ninterface UserDao {\n @Query("SELECT * FROM users")\n suspend fun getAllUsers(): List<User>\n}\n\n// Database