はじめに
Kotlin でデータバインディングを使うために、kapt の導入が必要であることを知った。
具体的に言うと自分の場合は
@get:Bindable ~
と言う記述をしてもBRクラス
に監視変数が生成されずにつまずきました。調べた結果 kapt の導入に行き着きました。
なぜ必要なのか
kapt とは kotlin-annotation-processing-tools の略であり、Kotlin プロジェクトでもアノテーション(@)を使い自動コード生成ができるようにするもの。
つまり、Dagger や DataBinding などを利用する際に導入が必要となるようである。
環境
- Android Studio: 4.1.1
- Build #AI-201.8743.12.41.6953283, built on November 5, 2020
- Runtime version: 1.8.0_242-release-1644-b3-6915495 x86_64
- VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
- macOS: 10.15.7
導入
私の場合はこの1行追加するだけで使用できました。
app/build.gradle
// 一部抜粋
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt' // ←ここに追加
}
上記ではなく、こちらの1行の追加でも大丈夫なはず
app/build.gradle
apply plugin: 'kotlin-kapt'
これで無事BRクラス
に監視変数が作成されました!!
最後に
Java ではこのような記述が必要ではないため、Kotlin の場合でも DataBinding の導入では以下の記述だけ追加すれば良いと考えておりました。
app/build.gradle
dataBinding {
enabled = true
}
// もしくは
buildFeatures {
dataBinding = true
}
解決までに数時間費やしてしまい、今回また勉強になりました。
#参考リンク
ありがとうございます!
参考にさせていただきました!