
Androidのビルド時にGladleのバージョンの問題で失敗してしまう場合の対処法
AndroidStudioアップデート後にiOSでは問題ないがAndroidだけビルドエラーになってしまう時の解決方法

はじめに
FlutterにおいてiOS/Androidアプリを開発しています。
ビルド&リリースの実績のあるプロジェクトにおいて、修正したものをテストしようとしたところ、突然Androidのビルド時に以下のエラーが発生するようになってしまいました。
FAILURE: Build failed with an exception.
* What went wrong:
Could not open cp_settings generic class cache for settings file '~/project/android/settings.gradle' (~/.gradle/caches/7.3/scripts/beu5h3fln94bmvnp26rw90bnh).
> BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 65
* 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.
* Get more help at https://help.gradle.org
BUILD FAILED in 439ms
Running Gradle task 'bundleRelease'... 957ms
┌─ Flutter Fix ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [!] Your project's Gradle version is incompatible with the Java version that Flutter is using for Gradle. │
│ │
│ If you recently upgraded Android Studio, consult the migration guide at https://flutter.dev/to/to/java-gradle-incompatibility. │
│ │
│ Otherwise, to fix this issue, first, check the Java version used by Flutter by running `flutter doctor --verbose`. │
│ │
│ Then, update the Gradle version specified in ~/project/android/gradle/wrapper/gradle-wrapper.properties to be compatible with that Java │
│ version. See the link below for more information on compatible Java/Gradle versions: │
│ https://docs.gradle.org/current/userguide/compatibility.html#java │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Gradle task bundleRelease failed with exit code 1
Android端末による実機へのビルドも、flutter build appbundle
コマンドによるバイナリ作成もエラーとなります。
前回のビルドからの差分を考えると、コードの修正以外は、実は記憶が定かではないのですが、AndroidStudioのアップデートをしたかもしれないということです。
以前のAndroidStudioのバージョンは「Koala」でしたが、現在は最新の「Ladybug」にしています。
正確には「Android Studio Ladybug Feature Drop | 2024.2.2」というバージョンです。
したがって、AndroidStudioのアップデートにより、Gradleに関する何かしらの設定が必要になったと考えられます。
問題点
エラーメッセージに書かれているとおり、flutter doctor --verbose
で検証してみますが、ここでは問題点は見つかりません。
このエラーメッセージを改めて読み解いていくと、どうやらFlutterが使用しているGradleのバージョンと、Javaバージョンの互換性が取れてないのが問題なようです。
では、GradleとJavaのバージョンに関する設定に注目していきます。
対処方法
AndroidStudioにおいて、IDE内で修正方法を提案してくれることがあると思いますが、今回のエラーに関係する build.gradle ファイルにおいても、AndroidStudioは修正方法を提案してくれるようです。
ただし、そのまま build.gradle ファイルを開いただけでは提案はされません。
Androidのプロジェクトとして開く必要があります。
ちなみにここで言う build.gradle ファイルは、appディレクトリ直下のものではなく、androidディレクトリ直下の方を指します。
AndroidStudioのプロジェクトのファイルツリーにある build.gradle ファイルで右クリックをします。
そして、[Open in] - [Open in Associated Application] より改めて Android Studioで開きます。

私の環境では、この方法だとデフォルトで開くのが Visual Studio Code だったため、一度Finderを開き、Finder上で buidl.gradle ファイルを右クリックし、その他から Android Studio を選択して開きました。

上記の手順通り build.gradle をAndroidStudioで直接開くと、画面下に以下のようなエラーと修正案が出てくるようになりました。
エラーメッセージ下にあるリンクをクリックします。
私は「upgrade to Gradle 8.5 and re-sync」を選択しました。

すると、Gradleのアップグレードが始まるためしばらく待ちます。
Gradleのアップグレード処理が完了すると、以下のようなポップアップが表示されます。

「Gradle sync needed」という警告メッセージが出て、プロジェクトにおけるGradleの同期を求められます。
ここでリンクの「Sync project」をクリックします。
そして同期処理が完了するまで待ちます。
同期処理が完了すると、以下のようなポップアップが表示されます。

「Project update recommended」というメッセージが出て、Gradleのプラグインのアップグレードを求められます。
ここでリンクの「Start AGP Upgrade Assistant」をクリックします。
※AGP:Android Gradle Pluginの略

すると最適のバージョンを提示してくれるので、初期値のバージョンを選択して、「Run selected step」をクリックします。
私の環境では、7.3.1から7.4.2にアップグレードするように促されました。
そしてこの処理を待って、Android Studioを念のため再起動して、改めてAndroidでのビルドを試したところ、無事問題は解決して、ビルド成功しました。