2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Android StudioをLady bugにアップデートしたらFlutterプロジェクトが実行できなくなった対応

Posted at

はじめに

Android StudioをLadybugにアップデートしたら元々動いてたFlutterプロジェクトのビルドが通らなくなり、Java周りの設定をいじることで解消できたので記します

起きたこと

何気なくAndroid StudioをLady bugにアップデートしたら先ほどまで動作確認できてたFlutterプロジェクトのビルドが通らなくなりました

エラー解消後に再現したものなので正確か分かりませんがこのような感じでした

スクリーンショット 2025-01-25 17.45.26.png

Flutterを実行する際のGradleのバージョンとJavaバージョンの互換性がないといったエラーのようです

この状態でflutter doctor -vを実行すると以下の状態になってます

[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0-rc4)
    • Android SDK at /Users/〇〇/Library/Android/sdk
    • Platform android-35, build-tools 36.0.0-rc4
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk-20.jdk/Contents/Home/bin/java
    • Java version Java(TM) SE Runtime Environment (build 20+36-2344)
    • All Android licenses accepted.

(再現があってればおそらく)Java20をFlutterで使用していたようです

対応

Gradleのバージョンと使用するJavaのバージョンを一致させることで問題は解消しました

Flutterプロジェクトにあるgradle-wrapper.propertiesに記載されている以下を確認すると設定されているGradleのバージョンは7.5のようでした

gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip

https://docs.gradle.org/current/userguide/compatibility.html#java_runtime
こちらにある対応表を見るとGradle7.5に対応しているJavaのバージョンは18になります

現在のFlutterで使用しているJavaのバージョンは20だったのでこれを18することで対応します

以下でJava18.0.2.1をダウンロードし、/Library/Java/JavaVirtualMachines/に配置しました
https://www.oracle.com/java/technologies/javase/jdk18-archive-downloads.html

nano ~/.zshrcをターミナルで実行し、以下を追加しました

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-18.0.2.1.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

source ~/.zshrcを実行し、Android StudioのProject StructureにもダウンロードとしたJava18を設定しました(こちらの.zshrcの設定は後で確認したらJava20のままでも動いてたのでもしかしたら不要かもです)

スクリーンショット 2025-01-25 18.21.45.png

この状態でビルドしても最初のエラーと特に変わりませんでした。

flutter doctor -vを実行すると以下の出力となっていてFlutter実行時にまだJava20を使っているようでした

[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0-rc4)
    • Android SDK at /Users/〇〇/Library/Android/sdk
    • Platform android-35, build-tools 36.0.0-rc4
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk-20.jdk/Contents/Home/bin/java
    • Java version Java(TM) SE Runtime Environment (build 20+36-2344)
    • All Android licenses accepted.

FlutterでJava18を使うようにするにはどうすれば良いのかわからず、/Library/Java/JavaVirtualMachines/jdk-20.jdkjdk-18.0.2.1.jdkが両方ある状態なのでjdk-20.jdkが優先されてしまってると思い、jdk-20.jdkを消したのですが、

[!] Android toolchain - develop for Android devices (Android SDK version 36.0.0-rc4)
    • Android SDK at /Users/〇〇/Library/Android/sdk
    • Platform android-35, build-tools 36.0.0-rc4
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk-20.jdk/Contents/Home/bin/java
    ✗ Cannot execute /Library/Java/JavaVirtualMachines/jdk-20.jdk/Contents/Home/bin/java to determine the version

Java20が無いとエラーが出るだけで、Java20を消せばJava18を見てくれるということではありませんでした

調べたところFlutterで使用するJavaを設定するコマンドがあり、以下を実行することで、

flutter config --jdk-dir="/Library/Java/JavaVirtualMachines/jdk-18.0.2.1.jdk/Contents/Home"

flutter doctor -vでちゃんとjava18を見てくれるようになりました

flutter doctor -vの実行結果

[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0-rc4)
    • Android SDK at /Users/〇〇/Library/Android/sdk
    • Platform android-35, build-tools 36.0.0-rc4
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk-18.0.2.1.jdk/Contents/Home/bin/java
    • Java version Java(TM) SE Runtime Environment (build 18.0.2.1+1-1)
    • All Android licenses accepted.

これらの設定をすることで元々動いてたFlutterプロジェクトをAndroid Studio Ladybugで実行できるようになりました

最後に

今回はJavaのバージョンを変える対応をしましたが、Javaのバージョンに合わせてgradleのバージョンを揃える対応でも良いと思います

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?