😺

FlutterのAndroid ビルド時にUnsupported class file major version 65

2024/10/10に公開

エラー内容

こんなエラーメッセージでハマったので、メモです。

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':gradle:compileGroovy'.
> BUG! exception in phase 'semantic analysis' in source unit '/Users/{username}/.asdf/installs/flutter/3.24.3-stable/packages/flutter_tools/gradle/src/main/groovy/app_plugin_loader.groovy' Unsupported class file major version 65

原因

実行時のJavaのバージョンが合わないために発生します。
今回は、おそらく、Android StudioをアップデートしたときにデフォルトのJavaのバージョンが変更になったため、エラーになったと思われます。

対処法

手順1 インストールされているJavaの一覧を表示

/usr/libexec/java_home -V

自分の場合、結果はこうでした

    20.0.2 (arm64) "Amazon.com Inc." - "Amazon Corretto 20" /Users/{username}/Library/Java/JavaVirtualMachines/corretto-20.0.2.1/Contents/Home
    19.0.1 (arm64) "Amazon.com Inc." - "Amazon Corretto 19" /Library/Java/JavaVirtualMachines/amazon-corretto-19.jdk/Contents/Home
    18.0.2 (arm64) "Amazon.com Inc." - "Amazon Corretto 18" /Users/{username}/Library/Java/JavaVirtualMachines/corretto-18.0.2/Contents/Home
    17.0.5 (arm64) "Amazon.com Inc." - "Amazon Corretto 17" /Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
    15.0.2 (x86_64) "Amazon.com Inc." - "Amazon Corretto 15" /Users/{username}/Library/Java/JavaVirtualMachines/corretto-15.0.2/Contents/Home
    15.0.2 (x86_64) "Amazon.com Inc." - "Amazon Corretto 15" /Library/Java/JavaVirtualMachines/amazon-corretto-15.jdk/Contents/Home
    11.0.22 (x86_64) "Amazon.com Inc." - "Amazon Corretto 11" /Users/{username}/Library/Java/JavaVirtualMachines/corretto-11.0.22/Contents/Home
    11.0.20 (x86_64) "Amazon.com Inc." - "Amazon Corretto 11" /Users/{username}/Library/Java/JavaVirtualMachines/corretto-11.0.20/Contents/Home
    11.0.19 (x86_64) "Amazon.com Inc." - "Amazon Corretto 11" /Users/{username}/Library/Java/JavaVirtualMachines/corretto-11.0.19/Contents/Home
    11.0.13 (x86_64) "Amazon.com Inc." - "Amazon Corretto 11" /Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home
    11.0.13 (x86_64) "Amazon.com Inc." - "Amazon Corretto 11" /Users/{username}/Library/Java/JavaVirtualMachines/corretto-11.0.13/Contents/Home
    1.8.0_282 (x86_64) "Amazon" - "Amazon Corretto 8" /Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home

(インストールしすぎですねw)

手順2 Java 17のpathを確認

/usr/libexec/java_home -v "17"

結果はこうでした

/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home

手順3 flutterが使うJavaのバージョンを変更

flutter config --jdk-dir="/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home"

完了!

これでまたAndroidのビルドをしてみてください。
ダメなら別のバージョンのJavaにしてみてください。

まとめ

多分もっといい方法あると思います。コメント大歓迎です。

最後に(宣伝)

こんなところでハマりながら友人と個人開発でゲーミフィケーション記録アプリ「HibaQuest」を作っています。
よければお試しください。 → https://hiba.quest

Discussion