خطأ "Cannot find setter for field" في Room مع Kotlin: الأسباب والحل
مرحبًا أيها الزملاء! أنا مبتدئ في Kotlin وأحاول استخدام Room للتخزين المحلي للبيانات. لدي كيان بسيط User:
```kotlin
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
val name: String,
val age: Int
)
```
و DAO:
```kotlin
@Dao
interface UserDao {
@Insert
suspend fun insert(user: User)
@Query("SELECT * FROM users WHERE id = :id")
suspend fun getUser(id: Int): User?
}
```
لكن عندما أقوم بتشغيل التطبيق، أحصل على الخطأ:
```
Cannot find setter for field - User.name
```
لقد قرأت أن Room يتطلب setters للحقول، لكن لدي data class - ويتم إنشاؤها تلقائيًا. ما المشكلة المحتملة؟ أنا أستخدم Room إصدار 2.5.0 و Kotlin 1.8.0. ملف Gradle الخاص بي مضبوط مع kapt، والتعليقات التوضيحية...