Почему 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

поэтому автоматически сгенерированные файлы были сгенерированы с неправильным именем файла.

Другие вопросы по тегам