Я получил ту же ошибку, что и заголовок.
Когда я пытаюсь установить изображение на glideSrc с помощью привязки данных, возникает ошибка. >
Cannot find a setter for that accepts parameter type 'int'
If a binding adapter provides the setter, check that the adapter is annotated correctly and that the parameter type matches.
Чтобы устранить ошибку, я добавил плагин kapt как и в ответах на другие подобные вопросы. LINK
Однако это по-прежнему вызывает ту же ошибку.
Фактически, большинство кодов привязки данных, а также приведенный выше XML-код, вызвать эту ошибку.
Как решить эту проблему?
gradle.app
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.jetbrains.kotlin.android)
id("androidx.navigation.safeargs")
id("kotlin-kapt")
}
android {
namespace = "com.example.materialcomponentsmotion"
compileSdk = 34
defaultConfig {
applicationId = "com.example.materialcomponentsmotion"
minSdk = 24
targetSdk = 34
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildFeatures {
dataBinding = true
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}
dependencies {
val nav_version = "2.7.7"
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.material)
implementation(libs.androidx.activity)
implementation(libs.androidx.constraintlayout)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
implementation("androidx.navigation:navigation-fragment-ktx:$nav_version")
implementation("androidx.navigation:navigation-ui-ktx:$nav_version")
implementation("com.github.bumptech.glide:glide:4.13.0")
kapt("com.github.bumptech.glide:compiler:4.13.0")
}
xml
Email.kt
data class Email(
val id: Long,
val sender: Account,
val recipients: List = emptyList(),
val subject: String = "",
val body: String = "",
val attachments: List = emptyList(),
var isImportant: Boolean = false,
var isStarred: Boolean = false,
var mailbox: Mailbox = Mailbox.INBOX
) {
val senderPreview: String = "${sender.fullName} - 4 hrs ago"
val hasBody: Boolean = body.isNotBlank()
val hasAttachments: Boolean = attachments.isNotEmpty()
val recipientsPreview: String = recipients
.map { it.firstName }
.fold("") { name, acc -> "$acc, $name" }
val nonUserAccountRecipients = recipients
.filterNot { AccountStore.isUserAccount(it.uid) }
}
Аккаунт
data class Account(
val id: Long,
val uid: Long,
val firstName: String,
val lastName: String,
val email: String,
val altEmail: String,
@DrawableRes val avatar: Int,
var isCurrentAccount: Boolean = false
) {
val fullName: String = "$firstName $lastName"
@DrawableRes val checkedIcon: Int = if (isCurrentAccount) R.drawable.ic_done else 0
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... r-type-int