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バージョンを確認します:
java -version
次に、使用しているJavaバージョンと互換性のあるGradleバージョンを確認します:
Javaバージョン | サポートされるGradleバージョン |
---|---|
8 | 2.0以上 |
9 | 4.3以上 |
10 | 4.7以上 |
11 | 5.0以上 |
12 | 5.4以上 |
13 | 6.0以上 |
14 | 6.3以上 |
15 | 6.7以上 |
16 | 7.0以上 |
17 | 7.3以上 |
18 | 7.5以上 |
19 | 7.6以上 |
20 | 8.1以上 |
21 | 8.4以上 |
TIP
最新の互換性情報はGradle公式ドキュメントで確認できます。
方法2: Gradleバージョンを変更する
プロジェクトのandroid/gradle/wrapper/gradle-wrapper.properties
ファイルを開き、distributionUrl
を互換性のあるバージョンに変更します:
distributionUrl=https://services.gradle.org/distributions/gradle-7.6-all.zip
方法3: Android StudioのJDK設定を調整する
# Android Studioのjbrフォルダをjreとしてコピー
cd "C:\Program Files\Android\Android Studio"
cp -r jbr jre
# 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パスに設定します:
setx JAVA_HOME "C:\Program Files\Android\Android Studio\jbr"
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr"
または、プロジェクト固有の設定としてandroid/gradle.properties
に追加します:
org.gradle.java.home=C:/Program Files/Android/Android Studio/jbr
方法5: Javaバージョンをダウングレードする
現在、Android開発ではJava 17を使用することが推奨されています:
- Oracle JDK 17をダウンロードしてインストール
- 環境変数
JAVA_HOME
を新しいJDKのパスに設定 - 他のJavaバージョンをアンインストールまたは無効化
WARNING
複数のJavaバージョンがインストールされている場合、システムのデフォルトバージョンとAndroid Studioのバージョンが一致することを確認してください。
推奨される設定
2024年現在、Android開発では以下の組み合わせが安定して動作します:
- Java: バージョン 17
- Gradle: バージョン 7.5-8.0
- Android Gradle Plugin: バージョン 7.3-7.4
トラブルシューティング
それでも問題が解決しない場合:
キャッシュのクリア:
bashflutter clean cd android ./gradlew clean
Android Studioでプロジェクトを開く:
- Android Studioで
android
フォルダを開く - ビルドが完了するまで待つ
Build > Rebuild Project
を実行
- Android Studioで
Flutterの設定を確認:
bashflutter 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バージョンの使用が推奨されています。