【Android】【Kotlin】JavaプロジェクトにKotlinを導入したらDataBindengでビルドエラーが出た話

こんにちは、kazuです。
本日はJavaプロジェクトにkotlinファイルを導入したらdataBindingでビルドエラーが出て詰まってしまったので、備忘録になります。

はじめに

Androidのプロジェクトを作成する時にJavaかKotlin選びますよね?
その時に最初はJavaで作るか〜となってしばらくするとKotlin導入しようと思い立ち導入した時にdataBindingで出たエラーになります。

どのようなエラーか?

シンボル:   クラス KotlinSampleActivity
場所: クラス KotlinSampleActivityBinding
エラー: Cannot resolve type 'activity'
エラー: cannot generate view binders android.databinding.tool.util.LoggedErrorException: failure, see logs for details.
Cannot resolve type 'activity'

なんか出てる。。。でひたすらググってみる。

切り分ける時

実装で切り分けるために以下のことをしてみました。
・何かKotlin側のコードに問題があるのでは?
ただレイアウトを表示させるようにするだけという対応にする。
結論:エラー解決ならず
・新しいJavaファイルでのActivity、レイアウトを作成する
→  Kotlinと同じ処理をJavaで書く
結論:上手くいく
最初は「???」となりました。。
だってJavaだけうまくいってKotilnはうまくいかないなぜと。。
そしてこのような記事に辿り着きましたJVMTargetのバージョンが低いのでは的な。

対応方法

ということで結論に入ると結論を言うとbuild.gradleの修正が必要でした。(JVMTargetは今回あまり関係ありませんでした。)
以下修正前と修正後になります。

plugins {
    id 'com.android.application' version '7.2.1' apply false
    id 'com.android.library' version '7.2.1' apply false
}
plugins {
    id 'com.android.application'
}
android{
・・・
}
dependencies{
・・・
}
plugins {
    id 'com.android.application' version '7.2.1' apply false
    id 'com.android.library' version '7.2.1' apply false
    // ↓ 追加した
    id 'org.jetbrains.kotlin.android' version '1.8.21' apply false
}
plugins {
    id 'com.android.application'
    // ↓ 追加した
    id 'org.jetbrains.kotlin.android'
}
android{
・・・
}
dependencies{
・・・
}

はい、と言うことでKotlinが読み込まれていないですね。
それが原因でした。Javaでプロジェクトを作成すると自分でgladleに追加しないといけないんですね。
以下Gradleのサイトです。

最後に

いかがでしたでしょうか?
設定を変更しなければいけなかったのは盲点でした。
もしJavaからKotlinへ移行を考えている方は注意してください!
最後までご覧いただきありがとうございました。