閉じる

kotlin + databinding = Unresolved reference

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"
    ~略~
}

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)