Skip to content

Gradle KTS で Room データベースを使用する際の kapt および ksp 未解決参照エラーの解決方法

問題の説明

Android Studio で ROOM データベースのセットアップ中、build.gradle.kts(Module:app)ファイル内で以下のエラーが発生します:

  • Unresolved reference: kapt
  • Unresolved reference: ksp

これらのエラーは Kotlin アノテーションプロセッシングツール(kapt)と Kotlin シンボルプロセッシング(ksp)の参照が解決できない状態です。主な原因は:

  1. 必要なプラグインがプロジェクトに正しく追加されていない
  2. kaptksp を同時に使用している(Room ではどちらか一方のみ必要)
  3. Gradle プラグインのバージョン互換性問題

注意

公式ドキュメント記載の設定をそのままコピーしても動作しない場合、Gradle KTS(Kotlin DSL)特有の設定が必要です。


解決方法

以下いずれかの方法で修正可能です。KSP が推奨(高速なコード生成)ですが、環境によっては KAPT も選択可能です。

方法 1: KAPT を使用する場合

  1. モジュールレベルの build.gradle.kts(app)に kotlin-kapt プラグインを追加:
    kotlin
    plugins {
        id("com.android.application")
        id("org.jetbrains.kotlin.android")
        id("kotlin-kapt") // 追加
    }
  2. 依存関係から ksp を削除し kapt のみ保持:
    kotlin
    dependencies {
        val room_version = "2.6.1"
        implementation("androidx.room:room-runtime:$room_version")
        kapt("androidx.room:room-compiler:$room_version") // kapt を使用
        // ksp(...) は削除する
    }

方法 2: KSP を使用する場合(推奨)

  1. プロジェクトレベルの build.gradle.kts に KSP プラグインを追加:
    kotlin
    plugins {
        // 既存のプラグインに追加
        id("com.google.devtools.ksp") version "1.9.21-1.0.15" apply false
    }
  2. モジュールレベルの build.gradle.kts(app)で KSP プラグインを適用:
    kotlin
    plugins {
        id("com.android.application")
        id("org.jetbrains.kotlin.android")
        id("com.google.devtools.ksp") // 追加
    }
  3. 依存関係から kapt を削除し ksp のみ保持:
    kotlin
    dependencies {
        val room_version = "2.6.1"
        implementation("androidx.room:room-runtime:$room_version")
        ksp("androidx.room:room-compiler:$room_version") // ksp を使用
    }

重要

kaptksp を同時に使用すると競合が発生します。Room コンパイラ依存関係は どちらか一方のみ を選択してください。


補足説明

KAPT と KSP の違い

ツール特徴推奨状況
KAPTKotlin Annotation Processing Tool
・Java アノテーションプロセッサと互換性あり
・ビルド速度が遅い
レガシーコードで使用
KSP がサポートしていないライブラリの場合
KSPKotlin Symbol Processing
・Kotlin ネイティブのコード生成
・ビルド速度が最大2倍高速
新規プロジェクトで推奨
Room や Hilt 等の最新ライブラリ対応

ビルド設定の確認ポイント

  1. Gradle プラグインのバージョン整合性
    com.android.tools.build:gradle と KSP バージョンの互換性を公式ドキュメントで確認
  2. 同期の実行
    設定変更後は必ず Sync Project with Gradle Files を実行
  3. キャッシュクリア
    解決しない場合: File > Invalidate Caches / Restart

参考リソース