Android Studio 3.0では Kotlinが正式にサポートされ、実際魅力的にも見えるので試してみるのだけど、databindingとの両立がうまくいかない。
プラグインの更新が頻繁すぎて新旧の情報が入り交じり、かなり混沌とした状況。
2.3.3でうまくいかないので 3.0 canaria5を試してみたけど、状況変わらない。
最終的に 2.3.3で動くようになった設定
/build.gradle
buildscript {
ext.kotlin_version = '1.1.3'
ext.databinding_compiler_version = '2.3.3'
~略~
dependencies {
~略~
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
~略~
}
}
/app/build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
~略~
dependencies {
~略~
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
kapt "com.android.databinding:compiler:$databinding_compiler_version"
}
Realmを使っているアプリでは databinding同様に Realm用の設定が必要だった。
/build.gradle
buildscript {
~略~
ext.realm_version='3.4.0'
~略~
dependencies {
~略~
classpath "io.realm:realm-gradle-plugin:$realm_version"
~略~
}
}
/app/build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android' // kotlin-androidより後に記述しないと「XXX is not part of the schema for this Realm」というランタイムエラーに悩まされる羽目に
~略~
dependencies {
~略~
kapt "io.realm:realm-gradle-plugin:$realm_version"
~略~
}