Warning: Undefined array key "is_rate_editable" in /home/xs576504/codeforfun.jp/public_html/wp-content/plugins/wpdiscuz/class.WpdiscuzCore.php on line 1303
Android

【Android】RoomとKSPを使うための設定方法(バージョンカタログ対応)

Sara

Room データベースを使うためには3つの依存関係を追加する必要があります。

dependencies {
    // 省略
    implementation(libs.androidx.room.runtime)
    ksp(libs.androidx.room.compiler)
    implementation(libs.androidx.room.ktx)
}

バージョンカタログがデフォルトになってから設定の書き方が少し変わったのでメモしておきます。

開発環境

以下の環境で動作確認しています。

Android StudioKoala | 2024.1.1 Patch 1
minSdk21
targetSdk34

KSPを有効化

まずは KSP(Kotlin Symbol Processing)を有効化します。

以前は Kapt(Kotlin Annotation Processing Tool)を使うのが一般的でしたが、現在は処理速度が最大2倍になる KSP の使用が推奨されています。

KSP を有効化するために Gradle Scripts フォルダにある3つのファイルを変更していきます。

① libs.versions.toml

Gradle Scripts → libs.versions.toml を開きます。

このファイルにはプラグインやライブラリのバージョンが指定されていて、3行目あたりに Kotlin のバージョンが kotlin = “1.9.20” のように書いてあります。

KSP のバージョンはこちらのページから調べることができるので、同じ Kotlin のバージョン番号から始まる KSP バージョンを選んでください。

私の環境では kotlin = “1.9.20” になっているので、KSP は 1.9.20-1.0.14 にしています。

バージョンが決まったら、12行目あたりに ksp = “バージョン名” と入力して、画面右上の Sync Now をクリックします。

同じファイルの最終行に

google-devtools-ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } 

と入力して、画面右上の Sync Now をクリックします。

google-devtools-ksp という文字列は自由に指定できますが、id から取るのが一般的です。

② build.gradle.kts (Project)

次は build.gradle.kts (Project: プロジェクト名) を開きます。* Module ではないので注意

5行目あたりに

alias(libs.plugins.google.devtools.ksp) apply false

と入力して、画面右上の Sync Now をクリックします。

③ build.gradle.kts (Module)

次は build.gradle.kts (Module: app) を開きます。* Project ではないので注意

4行目あたりに

alias(libs.plugins.google.devtools.ksp)

と入力して、画面右上の Sync Now をクリックします。

以上で KSP を使う準備は完了です。

Roomライブラリの追加

Room データベースを使うために最低限必要になるのが、以下の3つです。

dependencies {
    // 省略
    implementation(libs.androidx.room.runtime)
    ksp(libs.androidx.room.compiler)
    implementation(libs.androidx.room.ktx)
}

dependencies に直接この3行を追加すると、バージョンカタログ(libs.versions.toml)への記述も自分でしなくてはいけないので面倒です。

自動的にコードが追加されるように、ライブラリの読み込みには Project Structure を使うのがおすすめです。

Project Structure を開く

build.gradle.kts(Module :app) ファイルの上部に表示されている Open をクリックします(表示されていない場合は Android Studio 右上の アイコンから Project Structure を選択)。

左側の Dependencies を選択 → 中央にあるマークをクリック → Library Dependency をクリックします。

room-runtime

検索ボックスに room-runtime と入力して Enter キーを押します。

検索結果が表示されたら room-runtime をクリックして、右側でバージョンを選択します。

ここでは 2.6.1 を選択していますが、環境に合わせて変更してください。

選択したら右下の OK を押します。

room-complier

もう一度、中央にあるマーク → Library Dependency をクリックして、同じ画面を開きます。

今回は room-compiler を検索、バージョンを選んで、右下の OK を押します。

room-ktx

もう一度、中央にあるマーク → Library Dependency をクリックして、同じ画面を開きます。

今回は room-ktx を検索、バージョンを選んで、右下の OK を押します。

追加する

3つのライブラリを追加したら、右下の Apply をクリックして変更を適用して、OK をクリックします。

KSP

build.gradle.kts(Module :app) の下の方にある dependencies 部分にライブラリが追加されました。

このなかの

implementation(libs.androidx.room.compiler)

ksp(libs.androidx.room.compiler)

に変更して、右上に表示される Sync Now をクリックします。

完了

以上で完了です。

エラーが出てしまう場合はバージョンが原因の可能性が高いです。

バージョンは libs.versions.toml から直接変更することができます。どうしても動かない場合は以下のバージョンで動作確認済みですのでお試し下さい。

[versions]
agp = "8.5.2"
kotlin = "1.9.0"
coreKtx = "1.13.1"
junit = "4.13.2"
junitVersion = "1.2.1"
espressoCore = "3.6.1"
appcompat = "1.7.0"
material = "1.12.0"
activity = "1.9.2"
constraintlayout = "2.1.4"
ksp = "1.9.0-1.0.13"
roomRuntime = "2.6.1"
roomCompiler = "2.6.1"
roomKtx = "2.6.1"
Subscribe
Notify of
guest
0 Comments
古い順
新しい順 人気順
Inline Feedbacks
View all comments
ABOUT ME
Sara
Sara
運営者
書籍やオンライン講座でプログラミングを勉強してフリーランスのプログラマーになりました。
このサイトでは「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで紹介します。
独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています。
主な使用言語:Java / Kotlin / PHP
>> 詳しいプロフィール
>> お問い合わせ
>> 書籍を出版しました!
本格的に学びたい方へ

Code for Fun プログラミング講座

Code for Fun プログラミング講座では、プログラミングの基礎からアプリ開発まで学ぶことができます。

わかりやすく・シンプルをモットーに

  • 同じコードを書けば必ず完成できること
  • 専門用語を使いすぎないこと

を重視しています。

POINT 01

動くコード

プログラミングの文法だけを学んでも、そこから動くアプリを開発をするのは難しいです。

Code for Fun のプログラミング講座では、ゲームやカレンダーなど「アプリとして機能するもの」を作りながらプログラミングを学ぶことができます。

POINT 02

自分のペースで

オンライン講座なので、ご自身のペースで学習を進めて頂けます。

分からないことがあっても、前のレッスンに戻ることができるので安心です。

お申し込みしたその日からからすぐに始めることができます。

POINT 03

個別サポート

プログラミング学習では、エラーが起きることはよくあります。そんな時はお気軽にお問い合わせください!

コメント欄またはメールによるサポートを回数無制限でご利用頂けます。(*講座に関連するご質問のみ対応)

今すぐ無料でお試し

0
この記事にコメントするx
記事URLをコピーしました