🔖

flutterがAndroid StudioのJAVAを認識しない問題の解消方法

2023/01/20に公開約5,600字1件のコメント

flutter & Android StudioでThe operation couldn’t be completed. Unable to locate a Java Runtime.とUnable to find bundled Java version.を同時に解消する方法

環境

  • M1 MacBook Pro
  • macOS Ventura 13.0.1
  • Flutter 3.3.10
  • Android Studio Electric Eel | 2022.1.1

事前準備

  1. 公式の手順通りにflutterをインストール(cocoapodsもインストール済みであること)
  2. Android Studioをインストール
  3. Android Studioの設定からJDKとCommand Line Toolを入れる
  4. Android Studioの設定からFlutterプラグインを落として有効化
flutter doctor -v
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.

... 省略 ...

[!] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

... 省略 ...

! Doctor found issues in 2 categories.

公式のインストール手順を進めても、どうしても以下2つのエラーが出てしまう

  1. The operation couldn’t be completed. Unable to locate a Java Runtime.
  2. Unable to find bundled Java version.

brew install openjdk は片方のエラーしか解消しない

エラー文言で調べると、 brew install openjdk を実施する方法が結構出てくるが、 Android StudioのJavaを認識させる という目的が達成できていないことと、JavaやJDKはできる限りAndroid Studio環境下のみで管理した方が混乱しないため、次の方法で対処。

flutterが見に行くPATHをシンボリックリンクで作ってあげる

Githubのflutterのissue(Unable to find bundled Java version #118502)によると、flutterがAndroid Studio配下のJavaを認識するためのPATHが間違っている?模様。

/Applications/Android Studio.app/Contents/jbr

/Applications/Android Studio.app/Contents/jre

issueのコメントでjbrディレクトリを丸コピすると解消するよって書いてる人がいるけど、それだと実体が増やてしまうためシンボリックリンクで解消することに。

cd /Applications/Android\ Studio.app/Contents
sudo ln -nfs jbr jre

何故か下記のエラーでシンボリックリンク張れない。。

ln: jre: Operation not permitted

調べたところ、どうやらiTermに フルディスクアクセス の権限が無いために起きるようなので権限を変更。

  1. 設定
  2. プライバシーとセキュリティ
  3. フルディスクアクセス
  4. + ボタンから iTerm を探して追加する
  5. iTerm 再起動してシンボリックリンク張れたら成功
flutter doctor -v
[] Flutter (Channel stable, 3.3.10, on macOS 13.0.1 22A400 darwin-arm (Rosetta), locale ja-JP)
    • Flutter version 3.3.10 on channel stable at /Users/username/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 135454af32 (5 weeks ago), 2022-12-15 07:36:55 -0800
    • Engine revision 3316dd8728
    • Dart version 2.18.6
    • DevTools version 2.15.0

[] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/username/Library/Android/sdk
    • Platform android-33-ext4, build-tools 33.0.1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.11.3

[] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[] IntelliJ IDEA Ultimate Edition (version 2022.2.3)
    • IntelliJ at /Users/username/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[] IntelliJ IDEA Ultimate Edition (version 2022.2.2)
    • IntelliJ at /Users/username/Library/Application
      Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/222.4167.29/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[] IntelliJ IDEA Ultimate Edition (version 2022.2.3)
    • IntelliJ at /Users/username/Library/Application
      Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/222.4345.14/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[] VS Code (version 1.74.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.0.1 22A400 darwin-arm (Rosetta)
    • Chrome (web)    • chrome • web-javascript • Google Chrome 97.0.4692.71

[] HTTP Host Availability
    • All required HTTP hosts are available

これで両方の問題を同時に解消。

おまけ:Android Studio管理下のjavaのPATHを通す

bash等の方は適宜.bashrcなどに読み替えてください

vi ~/.zshrc
export PATH="/Applications/Android Studio.app/Contents/jre/Contents/Home/bin:$PATH"
source ~/.zshrc
java -version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
OpenJDK 64-Bit Server VM (build 11.0.15+0-b2043.56-8887301, mixed mode)

Discussion

flutterラボってサロンで丁度同じようなエラーで悩んでいた方がいたので、もっと早く見つけれたら良かったぁ笑

ログインするとコメントできます