M1 上的错误 运行 Flutter Doctor Mac - 无法找到捆绑的 Java 版本
Error running Flutter Doctor on M1 Mac - Unable to find bundled Java version
我该如何解决这个问题?我已经按照建议
在我的 M1 Mac 上下载了 Android Studio Preview
运行flutter doctor
后出错
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.
[✓] Flutter (Channel beta, 2.3.0-24.1.pre, on macOS 11.4 20F71 darwin-arm,
locale fr-FR)
[✗] Android toolchain - develop for Android devices
✗ cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[!] Android Studio
✗ Unable to find bundled Java version.
[✓] VS Code (version 1.58.2)
[✓] Connected device (2 available)
为什么还是不行?
多年来,我一直在使用 SDK Man,通过简单的命令安装、更新和更改 java 版本。它还将负责安装和环境变量设置。
Here is a simple guide for mac users
安装 sdkman 后,您可以从命令行使用它:
sdk ls java
它会 return 一个 table 所有可用的版本。
最干净的选择是最新的 'official' LTS 版本,其中供应商是 Java.net
,当前最新版本是 11.0.11-open
Sdkman 还在 table 底部提供了一个命令示例,因此对于当前最新的 LTS openJDK,我会选择:
sdk install java 11.0.11-open
仅此而已。或者,如果您之前安装了 java 版本(通过其他方式安装),最好将其删除。
确保您安装了 JDK (you can get it here) 并且您的 $PATH 和 $JAVA_HOME 设置正确。这些资源确实可以提供帮助:
- https://mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/#what-is-usrlibexecjava-home
- http://www.sajeconsultants.com/how-to-set-java_home-on-mac-os-x/
- https://docs.oracle.com/javase/9/install/installation-jdk-and-jre-macos.htm#JSJIG-GUID-5F4A0659-BFC5-4CB9-9920-D2DEABF29894
- https://medium.com/notes-for-geeks/java-home-and-java-home-on-macos-f246cab643bd
如果您已经设置好它们,请将以下内容粘贴到终端中,仔细检查您的 JAVA_HOME 发生了什么:
echo $JAVA_HOME
它应该输出这样的路径(jdk 版本可能不同):
/Library/Java/JavaVirtualMachines/jdk-16.0.2.jdk/Contents/Home
如果路径看起来相同(或与不同的 java 版本相同),并且您还检查了“where java”、“java -version”等,确保终端能够很好地识别您的 java 并且没有其他明显的 java 问题,这意味着唯一剩下的就是 运行 这些命令一一执行:
cd /Applications/Android\ Studio.app/Contents/jre
ln -s ../jre jdk
ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk
现在,如果你 运行 “flutter doctor -v”,你应该看不到 java 错误和类似这样的错误,而不是之前的错误:
• Java binary at: /Applications/AndroidStudio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
希望对您有所帮助!它为我解决了这个问题:)
这些答案也可能有帮助:
- Unable to find bundled Java version on Flutter
我该如何解决这个问题?我已经按照建议
在我的 M1 Mac 上下载了 Android Studio Preview运行flutter doctor
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.
[✓] Flutter (Channel beta, 2.3.0-24.1.pre, on macOS 11.4 20F71 darwin-arm,
locale fr-FR)
[✗] Android toolchain - develop for Android devices
✗ cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[!] Android Studio
✗ Unable to find bundled Java version.
[✓] VS Code (version 1.58.2)
[✓] Connected device (2 available)
为什么还是不行?
多年来,我一直在使用 SDK Man,通过简单的命令安装、更新和更改 java 版本。它还将负责安装和环境变量设置。
Here is a simple guide for mac users
安装 sdkman 后,您可以从命令行使用它:
sdk ls java
它会 return 一个 table 所有可用的版本。
最干净的选择是最新的 'official' LTS 版本,其中供应商是 Java.net
,当前最新版本是 11.0.11-open
Sdkman 还在 table 底部提供了一个命令示例,因此对于当前最新的 LTS openJDK,我会选择:
sdk install java 11.0.11-open
仅此而已。或者,如果您之前安装了 java 版本(通过其他方式安装),最好将其删除。
确保您安装了 JDK (you can get it here) 并且您的 $PATH 和 $JAVA_HOME 设置正确。这些资源确实可以提供帮助:
- https://mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/#what-is-usrlibexecjava-home
- http://www.sajeconsultants.com/how-to-set-java_home-on-mac-os-x/
- https://docs.oracle.com/javase/9/install/installation-jdk-and-jre-macos.htm#JSJIG-GUID-5F4A0659-BFC5-4CB9-9920-D2DEABF29894
- https://medium.com/notes-for-geeks/java-home-and-java-home-on-macos-f246cab643bd
如果您已经设置好它们,请将以下内容粘贴到终端中,仔细检查您的 JAVA_HOME 发生了什么:
echo $JAVA_HOME
它应该输出这样的路径(jdk 版本可能不同):
/Library/Java/JavaVirtualMachines/jdk-16.0.2.jdk/Contents/Home
如果路径看起来相同(或与不同的 java 版本相同),并且您还检查了“where java”、“java -version”等,确保终端能够很好地识别您的 java 并且没有其他明显的 java 问题,这意味着唯一剩下的就是 运行 这些命令一一执行:
cd /Applications/Android\ Studio.app/Contents/jre
ln -s ../jre jdk
ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk
现在,如果你 运行 “flutter doctor -v”,你应该看不到 java 错误和类似这样的错误,而不是之前的错误:
• Java binary at: /Applications/AndroidStudio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
希望对您有所帮助!它为我解决了这个问题:)
这些答案也可能有帮助:
- Unable to find bundled Java version on Flutter