Avatar ·

Room में Kotlin के साथ "Cannot find setter for field" त्रुटि: कारण और समाधान

नमस्ते साथियों! मैं Kotlin में नया हूँ और स्थानीय डेटा स्टोरेज के लिए Room का उपयोग करने की कोशिश कर रहा हूँ। मेरे पास एक सरल User entity है:\n\n```kotlin\n@Entity(tableName = "users")\ndata class User(\n @PrimaryKey val id: Int,\n val name: String,\n val age: Int\n)\n```\n\nऔर DAO:\n\n```kotlin\n@Dao\ninterface UserDao {\n @Insert\n suspend fun insert(user: User)\n\n @Query("SELECT * FROM users WHERE id = :id")\n suspend fun getUser(id: Int): User?\n}\n```\n\nलेकिन जब मैं ऐप्लिकेशन चलाता हूँ, तो मुझे यह त्रुटि मिलती है:\n\n```\nCannot find setter for field - User.name\n```\n\nमैंने पढ़ा है कि Room को fields के लिए setters की आवश्यकता होती है, लेकिन मेरे पास तो data class है — वे ऑटोमैटिकली generate होते हैं। समस्या क्या हो सकती है? मैं Room version 2.5.0 और Kotlin 1.8.0 का उपयोग कर रहा हूँ। मेरा Gradle फ़ाइल kapt के साथ सेट है, annotations सही हैं।