Android GradleプラグインのJava 17必須エラーの解決方法
問題の概要
Androidプロジェクトのビルド時に以下のエラーが発生する場合:
Android Gradle plugin requires Java 17 to run. You are currently using Java 11.
このエラーは、Android Gradleプラグインの新しいバージョンがJava 17以降を必要とするため発生します。主な原因は:
- JDKが11以下に設定されている
- 環境変数
JAVA_HOME
が古いバージョンを指している - Android StudioのGradle設定が更新されていない
基本解決手順
1. Java 17のインストール
最新のJDK 17を公式サイトからダウンロード:
2. 環境変数の設定
Windows:
システム環境変数の編集
を開くJAVA_HOME
を新規作成/編集:JAVA_HOME = C:\Program Files\Java\jdk-17.0.x
- システムの
Path
変数に追加:%JAVA_HOME%\bin
macOS/Linux:
bash
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
3. Android Studioの設定変更
File
>Settings
>Build, Execution, Deployment
>Build Tools
>Gradle
Gradle JDK
でJDK 17
を選択:
応用シナリオ別解決策
環境変数を変更できない場合(React Native)
React Native環境ではJAVA_HOME
を完全に削除することで解決する場合があります:
- システム環境変数から
JAVA_HOME
を削除 - Android Studio内の設定のみでJDKを管理
gradle.properties
で明示的に指定
プロジェクトのgradle.properties
ファイルに直接パスを記述:
properties
# Windows例
org.gradle.java.home=C\:\\Program Files\\Java\\jdk-17
# macOS/Linux例
org.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64
UbuntuでのOpenJDKインストール
bash
sudo apt update
sudo apt install openjdk-17-jdk-headless
sudo update-alternatives --config java # 17を選択
macOS(Homebrew利用)
bash
brew install --cask zulu@17
export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
キャッシュクリアと最終確認
- Gradleキャッシュ削除:bash
rm -rf ~/.gradle/caches # macOS/Linux del /s /q "%USERPROFILE%\.gradle\caches" # Windows
- ターミナルでバージョン確認:bash
java -version # 出力例: openjdk version "17.0.12" ...
- React Nativeプロジェクトの場合:bash
cd android ./gradlew --version # JDKバージョンチェック ./gradlew clean # クリーンビルド
注意事項
Unityユーザー向け警告:
warnJDKフォルダの直接上書きは他のアプリに影響する可能性があります
代替方法:
- Android SDKパス内のJDKを更新
org.gradle.java.home
で明示的パス指定
React Native 0.73以降: Java 21が必要な場合があります:
tipReact Native 0.73↑ではJava 21が必須 → 環境変数とGradle設定を21に更新
この手順でBUILD SUCCESSFUL
が表示されれば解決です。プロジェクト要件に応じてJavaバージョンを適切に管理しましょう。