Skip to content

Gradleビルドエラー「Could not open settings generic class cache」の解決方法

問題の概要

Android StudioやFlutterプロジェクトでビルドを実行する際に、以下のエラーが発生することがあります:

FAILURE: Build failed with an exception.

* What went wrong:
Could not open settings generic class cache for settings file 'path/to/settings.gradle'

BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 60

このエラーは、JavaのバージョンとGradleのバージョン、およびAndroid StudioのJDK設定間に互換性の問題があることを示しています。

根本原因

このエラーの主な原因は以下の通りです:

  • システムにインストールされているJavaバージョンとAndroid Studioが使用するJavaバージョンの不一致
  • GradleバージョンとJavaバージョンの互換性の問題(Javaのバージョンが高すぎる場合など)
  • 環境変数JAVA_HOMEの設定が不適切

解決方法

方法1: JavaとGradleの互換性を確認する

まず、システムのJavaバージョンを確認します:

bash
java -version

次に、使用しているJavaバージョンと互換性のあるGradleバージョンを確認します:

JavaバージョンサポートされるGradleバージョン
82.0以上
94.3以上
104.7以上
115.0以上
125.4以上
136.0以上
146.3以上
156.7以上
167.0以上
177.3以上
187.5以上
197.6以上
208.1以上
218.4以上

TIP

最新の互換性情報はGradle公式ドキュメントで確認できます。

方法2: Gradleバージョンを変更する

プロジェクトのandroid/gradle/wrapper/gradle-wrapper.propertiesファイルを開き、distributionUrlを互換性のあるバージョンに変更します:

properties
distributionUrl=https://services.gradle.org/distributions/gradle-7.6-all.zip

方法3: Android StudioのJDK設定を調整する

bash
# Android Studioのjbrフォルダをjreとしてコピー
cd "C:\Program Files\Android\Android Studio"
cp -r jbr jre
bash
# Android Studioのjbrフォルダをjreとしてコピー
cd "/Applications/Android Studio.app/Contents"
cp -r jbr jre

次に、jre/releaseファイルを開き、JAVA_VERSIONの値をシステムのJavaバージョンと一致させます。

方法4: 環境変数を設定する

環境変数JAVA_HOMEをAndroid StudioのJDKパスに設定します:

bash
setx JAVA_HOME "C:\Program Files\Android\Android Studio\jbr"
bash
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr"

または、プロジェクト固有の設定としてandroid/gradle.propertiesに追加します:

properties
org.gradle.java.home=C:/Program Files/Android/Android Studio/jbr

方法5: Javaバージョンをダウングレードする

現在、Android開発ではJava 17を使用することが推奨されています:

  1. Oracle JDK 17をダウンロードしてインストール
  2. 環境変数JAVA_HOMEを新しいJDKのパスに設定
  3. 他のJavaバージョンをアンインストールまたは無効化

WARNING

複数のJavaバージョンがインストールされている場合、システムのデフォルトバージョンとAndroid Studioのバージョンが一致することを確認してください。

推奨される設定

2024年現在、Android開発では以下の組み合わせが安定して動作します:

  • Java: バージョン 17
  • Gradle: バージョン 7.5-8.0
  • Android Gradle Plugin: バージョン 7.3-7.4

トラブルシューティング

それでも問題が解決しない場合:

  1. キャッシュのクリア:

    bash
    flutter clean
    cd android
    ./gradlew clean
  2. Android Studioでプロジェクトを開く:

    • Android Studioでandroidフォルダを開く
    • ビルドが完了するまで待つ
    • Build > Rebuild Projectを実行
  3. Flutterの設定を確認:

    bash
    flutter doctor
    flutter config --android-studio-dir="Android Studioのパス"

まとめ

「Could not open settings generic class cache」エラーは、JavaとGradleのバージョン不一致が主な原因です。システムのJavaバージョン、Android StudioのJDK、Gradleバージョンの互換性を確保することで、この問題を解決できます。現在のAndroid開発ではJava 17と互換性のあるGradleバージョンの使用が推奨されています。