Kotlin JVMターゲット21エラーの解決法(Android Studio Ladybug)
問題説明
Android Studioを最新版(Ladybug / 2024.2.2以降)へアップデート後、プロジェクトのコンパイル時に以下のエラーが発生します:
Unknown Kotlin JVM target: 21
この問題の特徴:
kapt
またはksp
使用時に頻発- 設定で
jvmTarget = "17"
を指定済みでも発生 - KotlinオプションとJavaバージョン設定は一貫している(例:VERSION_17)
- Android Studioアップデート前は正常に動作していた
根本原因: Android Studioのアップデートにより:
- デフォルトのGradle JDKがJVM 21に変更される
- Kotlinコンパイラが新しいターゲットを認識できない
- プロジェクト設定と実際のビルド環境に不一致が発生
効果的な解決策
方法1: Gradle JDK設定の変更(推奨)
最も確実な解決法は、Gradleが使用するJDKを明示的に指定することです:
- Android Studioで File > Settings を開く
- Build, Execution, Deployment > Build Tools > Gradle を選択
- Gradle JDK を
jbr-17
(JetBrains Runtime 17)に変更
shell
設定例:
Gradle JDK: JetBrains Runtime version 17.0.x
- Apply をクリックし設定を保存
重要
プロジェクト固有の設定ではなく、IDE全体の設定を変更する必要があります。この変更は全てのプロジェクトに適用されます。
方法2: build.gradleの設定強化
モジュールレベルのbuild.gradle
(Kotlin DSL: build.gradle.kts
)に以下を追記:
kotlin
android {
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
// この設定が解決の鍵!
kotlin {
jvmToolchain(17)
}
}
変更ポイント:
jvmToolchain(17)
の追加でJVMバージョンを明示- Kotlinコンパイラに確実にターゲットを伝達
compileOptions
とkotlinOptions
のバージョン一致必須(全て17)
方法3: Kotlinプラグインバージョンの更新
プロジェクトレベルのbuild.gradle
でKotlinプラグインを更新:
gradle
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.21" // 適切なバージョン
}
}
対応バージョン目安:
Android Studioバージョン | 推奨Kotlinバージョン |
---|---|
Ladybug (2024.2.2) | 2.0.0 以上 |
Nharwal以降 | 2.0.21 以上 |
注意
以下の不一致があるとエラーが再発します:
- モジュール間でのKotlinバージョン差異
- Android Gradle Plugin(AGP)とKotlinの非互換性gradle
// 推奨組み合わせ例 id "com.android.application" version "8.7.1" id "org.jetbrains.kotlin.android" version "2.0.20"
追加のトラブルシューティング
キャッシュクリア手順
設定変更後にエラーが解消しない場合:
- プロジェクトの
.gradle
フォルダを削除 - Android Studioで File > Invalidate Caches 選択
- Rebuild Project を実行
Flutterプロジェクト向け設定
android/app/build.gradle
に以下を追加:
gradle
kotlinOptions {
jvmTarget = '17' // 1.8でないことを確認
}
根本原因と予防策
エラー発生メカニズム:
再発防止のポイント:
- Android Studioアップデート後、必ずGradle JDK設定を確認
jvmToolchain()
設定を習慣的に追加- プロジェクトのKotlinバージョンを定期的に更新
- 各モジュールの設定整合性をチェック
まとめ
Unknown Kotlin JVM target: 21
エラーは、Android Studioの自動設定変更とプロジェクト設定の不一致によって発生します。以下の3アクションで永続的な解決が可能です:
- Gradle JDK を
jbr-17
に設定変更 - build.gradle に
jvmToolchain(17)
を明記 - Kotlinプラグイン を 2.0.0 以降に更新
これらの対策を実施後、プロジェクトの再ビルドを行えばエラーは解消します。特に大規模プロジェクトでは、全モジュールの設定統一が重要です。