Почему Epoxy не генерирует модельный класс?
Я хочу использовать Epoxy для моего recyclerView с kotlin, но Epoxy Model не генерирует класс PostModel_(), что с ним не так?
@EpoxyModelClass(layout = R.layout.iteam)
abstract class PostModel : EpoxyModelWithHolder<PostModel.PostHolder>() {
@EpoxyAttribute
lateinit var userName: String
@EpoxyAttribute
lateinit var avatarIcon: Drawable
@EpoxyAttribute
lateinit var post: Drawable
override fun bind(holder: PostHolder) {
holder.avatarIcon.setImageDrawable(avatarIcon)
holder.post.setImageDrawable(post)
holder.name.text = userName
}
class PostHolder : BaseEpoxyHolder() {
@BindView(R.id.name)
lateinit var name: TextView
@BindView(R.id.ic_avatar)
lateinit var avatarIcon: ImageView
@BindView(R.id.post)
lateinit var post: ImageView
}
}
2 ответа
Одна из распространенных ошибок при использовании Epoxy в Kotlin - это смешивание механизмов обработки аннотаций. Если вы скопировали это из readme Epoxy:
dependencies {
implementation 'com.airbnb.android:epoxy:3.x.y'
// Add the annotation processor if you are using Epoxy's annotations (recommended)
annotationProcessor 'com.airbnb.android:epoxy-processor:3.x.y'
}
Вы, вероятно, забыли применить то, что они предлагают пользователям kotlin, несколькими строками позже в том же файле readme:
обязательно использовать kapt
вместо того annotationProcessor
Я по ошибке удалил первую строку из файла моей модели:
package com.myCustomDomain.myapp.epoxyModel
поэтому автоматически сгенерированные файлы были сгенерированы с неправильным именем файла.