Edited at

KotlinでData Bindingを使う時の設定

More than 1 year has passed since last update.

kotlin 1.0.4がリリースされkapt周りの書き方が変わりました。

Kotlin 1.0.4 is here

apply plugin: 'kotlin-android'

+ apply plugin: 'kotlin-kapt'

dependencies {
// ... 略
kapt 'com.android.databinding:compiler:2.2.2' // バージョンは適当に直してください
}

- kapt {
- generateStubs = true
- }

というわけで、以下は古い情報です。


Kotlinを適用したプロジェクトでもData Bindingが使えるのか気になったので試してみたところ、KotlinファイルからBindingクラスを参照できませんでした。

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = DataBindingUtil.setContentView<ActivityMainBinding>(this, R.layout.activity_main)
binding.textView.text = "Hello World!!"
}
}

スクリーンショット 2015-11-16 16.43.18.png


解決方法

app/build.gradleに下記の設定をすれば解決します。

他のaptを使ったライブラリを使う時(Daggerとか)にも有効らしいです。

dependencies {

// ... 略
kapt 'com.android.databinding:compiler:1.0-rc5'
}

// ... Kotlin Pluginの設定とか

kapt {
generateStubs = true
}


参考にしたもの