[Flutter]Unable to find bundled Java versionエラーを改善

## はじめに

Flutterで久しぶりにdoctorコマンドを実行したら「✗ Unable to find bundled Java version.」が出ました。以前は問題なく動作してたはずなので、最新のAndroidStudioのバージョンを上げたタイミングで問題が起きた模様。

```
% flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.5.1, on macOS 12.5 21G72 darwin-arm, locale
    ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version
    32.1.0-rc1)
[!] Xcode - develop for iOS and macOS
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.
[✓] Chrome - develop for the web
[!] Android Studio (version 2022.1)
    ✗ Unable to find bundled Java version.
[✓] VS Code (version 1.76.2)
[✓] Connected device (1 available)
```

## 原因

flutterの見ているjavaのパスが間違っている。jbrではなくjreが正しい。
Contents配下を見るとjbrになっていた。

```
/Applications/Android Studio.app/Contents/jbr
```

jreは「Java Runtime Environment」ということ。
AndroidStudioのバージョンを上げたことにより、AndroidStudioのバグでjbrになってしまったのかと思います。そのためいずれgoogleが治しそう。

## 修正
対処療法として、フォルダ名をjreにすればよさそうだが、AndroidStudioはjbrでないと現状は動作しないようなので、jbrフォルダをコピーしてjreと二つのフォルダを持つとよさそう。

下記をjbrをコピーして新規作成
```
/Applications/Android Studio.app/Contents/jre
```

またはシンボリックリンクを張るとよさそう。
```
ln -s jbr jre
```

しかし、AndroidStudioの一時的な問題の場合を考えるとコピーのほうがアンパイ。

doctorコマンドで再度確認

```
% flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.5.1, on macOS 12.5 21G72 darwin-arm, locale
    ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version
    32.1.0-rc1)
[!] Xcode - develop for iOS and macOS
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.1)
[✓] VS Code (version 1.76.2)
[✓] Connected device (1 available)
```

OK

## 2024/3/29リリースのIguanaをインストール
新しく出たIguanaをインストールするとまたしても同じエラーが出ました。

```
% flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.10.6, on macOS 14.4.1 23E224 darwin-arm64,
    locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version
    32.1.0-rc1)
[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.2)
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.84.2)
[✓] Connected device (2 available)
    ! Device 18101FDF6003S3 is not authorized.
      You might need to check your device for an authorization dialog.
[✓] Network resources
```

ということで改善は上と同じでjreフォルダをコピーして作れば改善されます。
もしかしたらFlutterが見ているパスの方がバグでそちらを直した方がいいのかもしれません。
しかしjbrって何の略でしょうか。jbrで問題なく実はFlutterの読み込もうとしてるパスを直した方がいいのかもしれませんが、一旦暫定対応で動作するのでこのままでよしとしておきます。

```
% flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.10.6, on macOS 14.4.1 23E224 darwin-arm64,
    locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version
    32.1.0-rc1)
[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
[✓] Chrome - develop for the web
[!] Android Studio (version 2023.2)
    ✗ Unable to find bundled Java version.
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.84.2)
[✓] Connected device (2 available)
    ! Device 18101FDF6003S3 is not authorized.
      You might need to check your device for an authorization dialog.
[✓] Network resources
```

## まとめ
AndroidはAndroidStudioやAGPやアップデートするとなかなか素直に動いてくれません。
Flutter開発のみであればVSCも体験が良かったのでそちらへの切り替えも検討して良いかもです。