0

私のプロジェクトには、DataBinding ライブラリを使用しようとしている kotlin Android ライブラリ モジュールがあります。私は DataBindingComponent を使用して画像の読み込みを行っています。コンパイル時にはすべて問題なく、生成された DataBindingComponent インターフェイスが作成され、それを実装して挿入できます。ただし、実行時にアプリがクラッシュします。

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/databinding/DataBindingComponent;

アプリの apk とライブラリ モジュールの aar を調べると、DataBindingComponent が含まれているようには見えません。

いくつかのコード スニペット:

build.gradle

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'

...

android {

    ...
    dataBinding {
        enabled = true
    }
}


dependencies {
    ...
    kapt "com.android.databinding:compiler:3.1.1"
    ...
}

ImageBindingAdapter

class ImageBindingAdapter(private val loadImage: (ImageView, String) -> Unit) {

    @BindingAdapter("imageUrl")
    fun setImageUrl(view: ImageView, imageUrl: String) {
        view.loadImageWhenLaidOut(imageUrl, loadImage)
    }

}

DataBindingComponent の使用

itemRecyclerAdapter.dataBindingComponent = object : DataBindingComponent {
    override fun getImageBindingAdapter(): ImageBindingAdapter {
        return ImageBindingAdapter({ imageView, url ->
            loadImage(imageView, url)
        })
    }
}
4

2 に答える 2