見出し画像

プログラマー探偵の事件簿:Unsupported class file major version 64

調べていることが全く違う方向のために、時間を無駄にすることがある。そんな事件の話である。

事件の始まり

スマホのアプリをFlutterで開発していた時の話である。しばらくぶりに機能拡張のためにFlutterのプロジェクトをVSCodeで開いた時、
「Unsupported class file major version 64」
というエラーが表示された。
場所を見るとAndroid版をビルドするファイルである。試しにAndroid版をビルドしてみたが問題はない。実機でのデバックもできる。
不可思議な現象である。

人を疑う

このプロジェクトを他の人が少し修正したので、その影響ではないかと疑った。まず、人のせいにするのがプログラマーの特性である。
ここで助手の猫が天から一言
「証拠もないのに人を疑うな!、だいたいは、自分のせいだ!」
そうである。いつも自分のせいが多い。
Gitの修正履歴を確認したが、関係しようなところは修正していない。何故だ!

 Googleさんに聞いてみた

いつものようにGoogleさんに聞いてみた。いくつか、同じエラーで悩んでいる人が書いていた。ありがたいことだ!

を見つけた時に、これだと思って試してみた。
不慣れなAndroid Studioでプロジェクトを開いて書いてあることを実施したが解決しない。Android Studioのアドバイスで、いろいろなソフトをアップデートしてみたが問題は悪化するばかりであった。

AI(Google Bard)にも聞いてみた

途方にくれてAI頼みしてみた。
最初は、
「Unsupported class file major version xxは、何が起こっていますか?」
と聞いてみた。
答えは、

Unsupported class file major version xxは、Javaのバージョンが古いために、新しいバージョンのクラスファイルを実行できない場合に発生するエラーです。このエラーを解決するには、Javaのバージョンをアップグレードする必要があります。

Google Bard

でした。それは、Googleさんが教えてくれたので
Javaのバージョンもいろいろ変えて試した結果、惨敗であった。
AIにもう少し情報を加えて聞いてみた。
「VSCodeの環境でFlutter開発の開発をする時にUnsupported class file major version xxと表示された場合、何が問題ですか?」
答えは

VSCodeの環境でFlutter開発を行う際に「Unsupported class file major version xx」と表示された場合、その原因は次の2つ考えられます。

1.VSCodeのJava拡張機能のバージョンが古い。
2.Flutterのバージョンが古い。

どちらの場合も、問題の原因となっているバージョンをアップデートすることで解決することができます。

VSCodeのJava拡張機能のバージョンをアップデートするには、次の手順に従います。
1. VSCodeを開きます。
2. [拡張機能] を開きます。
3. [拡張機能の管理] をクリックします。
4. [Java] 拡張機能を見つけます。
5. [更新] をクリックします。

Flutterのバージョンをアップデートするには、次の手順に従います。
1.Flutterの公式サイトにアクセスします。
2.[ダウンロード] をクリックします。
3.最新のFlutterのバージョンをダウンロードします。
4.ダウンロードしたFlutterのバージョンをインストールします。

これらの手順を実行することで、「Unsupported class file major version xx」のエラーを解決することができます。

Google Bard

詳しく教えていただきましたが、どちらも最新であった。
でも、ヒントはあった。

JavaやFlutterのこだわりを捨てろ

諦めかけた時に、助手の猫が天から
「JavaやFlutterのこだわりを捨てろ、原因は別のところにある」
と言う声がした。
Googleさんで調べている中に、VSCodeのJava拡張機能の問題
という記事を見た覚えがある。
試しに、最初の状態でVSCodeのJava拡張機能

を無効にした。
あ、治った!

Flutterとは別の方法でAndroidのアプリを開発した時にいれた、拡張機能が悪さをしていたのであった。

この記事が参加している募集

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。