Flutter:Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.のエラー

結論:JAVA_HOMEをPATHに設定する(PATHを通す)

2022/9/17  Flutter エラー・バグ日記 

 

Google Play Consoleにアップロードするaabファイルを作ろうとしたら、Android Studioのアップグレードを求められたので、「Dolphin」バージョンに更新したが(こちらの日記ご参照)、今度は以下のエラーが発生し、結局、ビルドが進まなかった。

 

Build file '/Users/*******/android/app/build.gradle' line: 24

A problem occurred evaluating project ':app'.
> Failed to apply plugin 'com.android.internal.application'.
   > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
     You can try some of the following options:
       - changing the IDE settings.
       - changing the JAVA_HOME environment variable.
       - changing `org.gradle.java.home` in `gradle.properties`.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

 

本記事はライトな日記思考で書いているので、詳細説明はしておらず、基本、テキストのみで画像とかはあまり載せておりません。。m(_ _)m

解説記事ではないため、解決していない内容や、その時々の間違った解釈を述べてしまっている可能性が大いにありますので、何卒、ご了承ください。

 

GradleがJava11を求めているのに、現在使っているJavaが1.8なので、不整合だということらしい。

 

エラーメッセージ内に、対応候補が3つも書かれており、ネットにも多くの情報が出てくるので、すんなり行くかと思いきや、かなり難航した。。。

 

そもそもJava11が入っているのか確認

過去、MacにJavaをインストールしたときは、Java8だったので、不安になった。

 

こちらの記事を参考にさせていただき、ターミナルから

 

/Applications/Android\ Studio.app/Contents/jre/Contents/Home/bin/java -version

 

と打ってみる(「\」は、恐らく、コマンド上でスペースを認識させるためのエスケープ文字)。

 

すると、

 

openjdk version "11.0.13" 2021-10-19

 

と出てきたので、Java11自体は、問題なくインストールされているらしい。

 

Android StudioにはJava11が同梱されているらしいので、そのためだろう。

 

Gradle JDKは既に「11 version 11.0.13・・・」なので、直す必要がない。。

1つめの対応候補である「IDEの設定を見直す」方法について、ネット上で多く見られたのが、

 

  • Android Studioを、Flutter用ではなく、Androidアプリ用に起動し、
  • 「Preferences」→「Build, Execution, Deployment」→「Build Tools」→「Gradle」の中の「Gradle JDK」で、
  • 「1.8 verion・・・」となっているのを「11 version ・・・」に変更する

 

というもの(こちらこちらの記事などを参考にさせていただいた)。

 

しかし、自分の環境では既に、

 

11 version 11.0.13 /Applications/Android Studio.app/Contents/jre/Contents/Home

 

が選択されており、変更の余地がなかった。。

 

gradleをダウングレードする(これは試さず)

こちらの記事では、恐らく、自分と同じ状況だったためか、

 

プロジェクト直下の「build.gradle」の

  • 「com.android.tools.build:gradle:」
  • 「org.jetbrains.kotlin:kotlin-gradle-plugin:」

のバージョンを、それぞれ

  • 「4.1.0」
  • 「1.6.10」

ダウングレードする(ダウングレード前は、それぞれ「7.1.2」と「$kotlin_version」)方法が紹介されていた。

 

しかし、以前のエラー対応(こちらの日記ご参照)で、gradleのダウングレードはしない選択をしたので、この方法は断念。。

 

Gradle JDKを「Embedded JDK version 11.0.13・・・」に変えると解消するが、設定が維持されない。。

改めて下記の記事を見てみると、他の記事とは異なり、前述した「Gradle JDK」のところで、「Embedded JDK version 11.0.13・・・」を選択する方法が紹介されていた。

 

※こちらの記事は、3つの対応方法を丁寧に説明されており、大変助かりました。ありがとうございます!

 

どうやら、Android Studioに同梱されているJavaを使うには、これを選択する必要があるらしい。

 

自分の場合、「Gradle JDK」に、

 

Embedded JDK version 11.0.13 /Applications/Android Studio.app/Contents/jre/Contents/Home

 

という選択肢があったので、これを選択後、Android Studioのメニューの「Build」→「Rebuild Project」でリビルドしたところ、無事エラーが解消された。

 

しかし、一度、Android専用のプロジェクトを閉じて、再び開くと、「Gradle JDK」の設定が「11 version 11.0.13・・・」に戻ってしまう

 

そのため、再度「Embedded JDK・・・」を選択して、リビルドする必要があり、非常に手間。。

 

 

設定を維持する方法がないか調べると、下記に同じ質問をしているスレッドがあった。

 

 

回答内容を見ると、「gradle.properties」に設定を追記すれば良さそうだが、書き方が諸説あるようで、あまり気が進まず。

 

2つめのJAVA_HOMEをPATHに設定する方法を試す(解決)

仕方なく、2つめのJAVA_HOMEの環境変数を設定する方法に変更してみる。

 

いずれも既出ではあるが、改めて下記記事が大変参考になった。

 

 

 

具体的には、Finderで非表示ファイルを表示させ、ユーザー直下の「.zshrc」ファイルを開いて、設定を追記する方法。

 

但し、PATHを設定するには、JAVA_HOMEがどこにあるのか把握しなければならない。

 

ここでしばらく詰まったが、「Preferences」から確認できる「Gradle JDK」のプルダウンリストを見ると、いずれの選択肢にも、

 

/Applications/Android Studio.app/Contents/jre/Contents/Home

 

のパス名が書かれていた。

 

Java11の存在確認をしたときも、同じパスを入れて反応が得られたので、間違いないだろうと判断(恥ずかしながら、環境変数への理解が乏しく。。)。

 

そこで、「.zshrc」ファイルに、以下の2行を追記

 

export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"
export PATH="$PATH:$JAVA_HOME/bin"

 

再度、「Open for Editing in Android Studio」から、Android専用のAndroid Studioを起動したところ、今度はエラー無く、ビルドが完了した!

 

「Preferences」の画面で「Gradle JDK」を選択し直す必要もなかった

 

これでようやく、aabファイルの作成まで、完了できた。

 

なお、当初、PATHが通ったことを確認すべく、ターミナルで「echo $JAVA_HOME」を打つも、反応が無かったので(空白行が返ってくる)、詰まっていた。。

 

原因は、単なる入力ミス。恥ずかしながら、1行目の最後に、閉じるダブルコーテーションが抜けていた。。。(つい、参考記事のコードをそのままコピペしてしまった。。自分でしっかり理解する必要アリと反省。)

 

やはり、FlutterやAndroid Studioをアップグレードすると、色々と困難があるが、、より使いやすい環境に進化したと考えて、前向きに捉えることにする。

 

\ Flutterの学習で役立ったコンテンツ・書籍 /

 

 

 


Dart入門 – Dartの要点をつかむためのクイックツアー
タイトルとURLをコピーしました