سلام وقتتون بخیر
من امروز اخرین نسخه room رو در پروژه ام استفاده کردم و این خطا رو گرفتم :
Entities and POJOs must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type). - kotlin.Unit
این در حالی هست که مدل من خیلی ساده است
@Entity
data class User(
@PrimaryKey val id: Int,
val name: String?,
val email: String?,
val avatar: String?
)
// room
def room_version = "2.4.1"
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
implementation "androidx.room:room-ktx:$room_version"
نسخه کاتلین هم : 1.6.0
نسخه گردل هم :
classpath "com.android.tools.build:gradle:7.0.4"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10"
لطفا اگر به این مشکل خوردید راهنمایی کنید ممنون میشم.
سلام صبح شما بخیر
اولین راه حل اینکه برای این کدتون یک سازنده (constructor) ایجاد بکنید
چرا باید کد سازنده ایجاد بکنید ؟ چون Room نمیدونه چطوری به کد های تولید شده جاوا بگه که چطوری فیلد های خالی رو مقدار دهی بکنه
@Entity
data class User(
@PrimaryKey val id: Int,
val name: String?,
val email: String?,
val avatar: String?
){
constructor() : this(0, "", "", "" )
}
اینکارم میتونید انجام بدید:
@Entity
data class User(
@PrimaryKey val id: Int?=0,
val name: String?="",
val email: String?="",
val avatar: String?=""
)
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟