解決策の要約 (TL;DR)
この問題は、バージョンの不一致が原因です。現在のプロジェクトが使用しようとしているJavaバージョン(JDK)を、現在のGradleバージョンがまだ認識できていません。すぐにコーディングに戻るには、以下の手順に従ってください。
- Settings(macOSの場合はSettings/Preferences)を開きます。
- Build, Execution, Deployment > Build Tools > Gradle へ進みます。
- Gradle JDK セクションで、JDK 17やJDK 11などの低いバージョンを選択します。あるいは、JDKに合わせてGradleのバージョンを上げてください。
根本原因を読み解く
Javaは内部IDとして「メジャーバージョン」番号を使用します。Gradleが unsupported class file major version 65 というエラーを出すのは、実質的に「Java 21用にコンパイルされたコードを見つけましたが、古いバージョンしか処理できません」と言っているのです。
エラーがどのJavaバージョンについて指摘しているか、以下のリストで確認してください。
- メジャーバージョン 66: Java 22
- メジャーバージョン 65: Java 21
- メジャーバージョン 61: Java 17
- メジャーバージョン 55: Java 11
- メジャーバージョン 52: Java 8
このような不一致は、通常Android Studioをアップデートした後に発生します。また、新しいプロジェクトをインポートした際や、Android Studioが誤って新しくインストールされたJDKを読み込んでしまった場合にも起こります。
方法1:Android Studioの設定でJDKを調整する
通常、最も簡単な修正方法は、Android Studioが互換性のあるJDKを参照するように設定することです。Androidアプリをビルドするために、必ずしも最新のJavaバージョンが必要なわけではありません。
- Ctrl+Alt+S(Windows/Linux)または Cmd+,(macOS)を押してSettingsを開きます。
- Build, Execution, Deployment > Build Tools > Gradle に移動します。
- Gradle JDK のドロップダウンを探します。
- Gradleのバージョンが7.x系の場合は、JDKを Embedded JDK または JDK 17 に切り替えてください。
- Apply を押し、同期バナーの Try Again をクリックします。
方法2:Gradleのバージョンをアップグレードする
Java 21の機能が必要ですか?その場合は、Gradleをアップグレードする必要があります。例えば、Java 21(バージョン65)が正しく動作するには、少なくとも Gradle 8.5 が必要です。
- プロジェクトツリーで
gradle/wrapper/gradle-wrapper.propertiesを開きます。 distributionUrlの行を探します。- バージョン番号を互換性のあるリリースに更新します。
# 旧バージョン(Java 21をサポートしていません)
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
# 更新後のバージョン(Java 21をサポート)
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
プロジェクトを再度同期します。Gradleは必要なファイルを自動的にダウンロードします。これで「major version 65」エラーは解消されるはずです。
方法3:ターミナルとJAVA_HOMEの修正
IDE上では問題なくても、ターミナルで ./gradlew assembleDebug を実行すると失敗することがあります。これは、ターミナルがAndroid Studioの内部設定を無視し、システムの JAVA_HOME 環境変数に依存しているためです。
ターミナルが何を使用しているか、次のコマンドを実行して確認してください。
java -version
もしJava 21が返され、プロジェクトがJava 17を必要としている場合は、JAVA_HOME をリダイレクトする必要があります。macOSまたはLinuxでは、現在のセッションで一時的に切り替えることができます。
export JAVA_HOME=`/usr/libexec/java_home -v 17`
./gradlew build
Windowsでは、Android StudioのJBRフォルダへのパスを設定します。
set JAVA_HOME=C:\Program Files\Android\Android Studio\jbr
.\gradlew build
互換性早見表
環境を安定させるために、この対応表を活用してください。各Javaリリースに必要な最小のGradleバージョンを示しています。
Javaバージョン
必要なGradleバージョン
17
7.3+
18
7.5+
19
7.6+
20
8.3+
21
8.5+
修正の確認
設定を変更したら、状態をクリーンにします。File > Invalidate Caches... に移動し、Invalidate and Restart を選択してください。これにより、以前の失敗したビルドから残っているメタデータが消去されます。
再起動後、**象のアイコン(Sync Project with Gradle Files)**をクリックします。下部の Build タブを確認し、緑色のチェックマークが表示されれば準備完了です。
まだエラーが出ますか?モジュールレベルの build.gradle ファイルを再確認してください。sourceCompatibility と targetCompatibility が、選択したJDKと一致していることを確認します。
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}
}

