【Flutter】 Androidのビルド時の「Your project’s Gradle version is incompatible with the Java version that Flutter is using for Gradle」エラーの解決方法
スポンサーリンク

Androidのビルド時にGladleのバージョンの問題で失敗してしまう場合の対処法

AndroidStudioアップデート後にiOSでは問題ないがAndroidだけビルドエラーになってしまう時の解決方法

ヒーラー
Flutterで作成したアプリのAndroidビルド時だけなぜかエラーが発生するようになった。過去にビルド実績のあるプロジェクトなのに。AndroidStudioをアップデートしたタイミングというのが関係ある?

はじめに

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でのビルドを試したところ、無事問題は解決して、ビルド成功しました。


スポンサーリンク

Twitterでフォローしよう

おすすめの記事