Skip to content

Android Studio LadybugのJavaとGradle互換性エラー解決法

問題点

Android Studio Ladybugへアップグレード後、プロジェクト同期時に以下のエラーが発生します:

Your build is currently configured to use incompatible Java 21.0.3 and
Gradle 8.0. Cannot sync the project.

We recommend upgrading to Gradle version 8.9.
The minimum compatible Gradle version is 8.5.
The maximum compatible Gradle JVM version is 19.

このエラーは、現在のJava 21.0.3とGradle 8.0の組み合わせに互換性がないことを示しています。特に重要なのは以下の点です:

  • Gradle 8.0がサポートする最大Javaバージョンは19まで
  • Android Studio LadybugのデフォルトJava SDKは21(互換性なし)
  • Gradleアップグレード(8.5以上)が推奨されるが、プロジェクト変更を避けたいケースも多い

推奨解決策: Java 17へのダウングレード

手順詳細

markdown
1. [File] → [Project Structure] を開く
2. [SDK Location] タブで JDK 設定を選択
3. [Add SDK] → [Download JDK] をクリック
4. ベンダーで「JetBrains」を選択
5. バージョン「17」をダウンロード
6. ダウンロード完了後、新しいJDK 17を選択
7. [Apply] → [OK] で変更を保存
markdown
# ターミナルでJavaバージョンを確認
java -version

# 期待する出力例
openjdk version "17.0.12" 2024-10-22
OpenJDK Runtime Environment JBR-17.0.12+1-1207.37-nomod (build 17.0.12+1-b1207.37)

スクリーンショットガイド

  • JDKダウンロード画面:
    JDKダウンロード画面
  • ベンダー選択画面:
    JetBrains選択
  • Java 17選択画面:
    Java 17選択

代替解決策: JDKパス手動設定(Flutterプロジェクト向け)

特定環境向け

この方法はFlutterプロジェクトでJDKパスを明示的に指定する場合に有効です

bash
# JDK 17のインストール先を指定
flutter config --jdk-dir ~/Library/Java/JavaVirtualMachines/jbr-17.0.12/Contents/Home

# 設定確認
flutter doctor -v

期待する出力例(Javaパスが変更されていることを確認):

bash
[✓] Android toolchain - develop for Android devices
 Java binary at: /Users/[user]/Library/Java/JavaVirtualMachines/jbr-17.0.12/Contents/Home/bin/java
 Java version OpenJDK Runtime Environment JBR-17.0.12+1-1207.37-nomod

Flutter Doctor検証結果

トラブルシューティング

モジュールエラーが発生する場合

module jdk.compiler does not export com.sun.tools.javac.main to unnamed module
解決法: 1. Android Studioを完全に終了 2. コンピューターを再起動 3. ./gradlew cleanBuildCache を実行

その他の注意点

非推奨な回避策

  • gradle-wrapper.propertiesの強制変更
  • JAVA_HOMEで一時的にJava 19を指定
    → ビルド不安定化のリスクあり

根本解決の選択肢

  • 推奨長期対策: Gradleアップグレード(8.5以上)
    gradle
    distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
  • 一時的回避策: Javaダウングレード(17)
    → プロジェクト変更なしですぐ適用可能

互換性マトリクス:

Gradleバージョン最大Javaバージョン
8.0Java 19
8.5+Java 21