前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

Android: RoomのアノテーションプロセッサをKSPに変更する

内容

Kaptに代わるアノテーションプロセッサとして登場したKSP。Roomが対応しているので適用する。

対応

app/build.gradleを編集する。

変更前

dependencies {
    val room_version = "2.4.2"
    implementation("androidx.room:room-ktx:$roomVersion")

    kapt("androidx.room:room-compiler:$room_version")
}

変更後

plugins を書かないと ksp() がエラーになるので注意。これがRoomのドキュメントには書いてなくて、 KSPのドキュメントでは別な書き方が書いてあって少しハマった。 moshi に正解が載っていた。 Roomのバージョンが上がっているのはついで。

plugins {
    id("com.google.devtools.ksp").version("1.7.10-1.0.6")
}
dependencies{
    val room_version = "2.4.3"
    implementation("androidx.room:room-runtime:$room_version")
    implementation("androidx.room:room-ktx:$room_version")

    annotationProcessor("androidx.room:room-compiler:$room_version")
    ksp("androidx.room:room-compiler:$room_version")
}

とりあえずこれだけで実装の変更なく、既存のプログラムが動作することを確認。

参考

kotlinlang.org

developer.android.com

github.com