在 M1 Apple Silicon 上更新 Android studio Arctic Fox(2020.3.1) 后,无法找到与 flutter doctor 捆绑的 Java 版本

Unable to find bundled Java version with flutter doctor, after updating Android studio Arctic Fox(2020.3.1) on M1 Apple Silicon

我遇到了一个奇怪的问题。在我更新 Android Studio 之前,flutter doctor 一切正常。一旦我更新了 Android Studio,当我 运行 医生时,它显示“无法找到捆绑的 Java 版本”。我已经下载了 Java 安装程序并安装在我的 M1 Mac 上,但是在我重新启动后, 运行ning flutter doctor 仍然显示相同的错误。奇怪的是,当我卸载 Arctic Fox 版本并重新安装旧的 Android Studio 版本时,运行ning 医生一切正常。我该如何解决?

复制文件夹 /Applications/Android Studio 预览。app/Contents/jre/Contents 到 /Applications/Android Studio 预览。app/Contents/jre/jdk/Contents

答案已经发布here

对于 Mac 用户:

使用下面的文章设置 Java_Home 路径,然后应用此 command

在终端中输入以下命令后:

cd /Applications/Android\ Studio.app/Contents/jre

ln -s ../jre jdk

ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk

flutter doctor -v

这是我在 M1 上设置 Android Studio 所必须做的一切的更完整的答案。

  1. 将 Android Studio 安装到应用程序文件夹

  2. 创建符号 link 从 jre 文件夹到新的 jdk 文件夹。 (由于 this bug

cd /Applications/Android\ Studio.app/Contents/jre
ln -s ../jre jdk
  1. 设置JAVA_HOME环境变量
nano ~/.zshrc
export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home"
source ~/.zshrc
  1. Install Android SDK Command-line Tools(需要接受许可)

  2. 此时它应该可以工作了(假设你已经在你的路径中添加了 flutter)

flutter doctor

我确实安装了新版本的 JAVA SDK、flutter、Android Studio 和 运行 下面的命令直接在终端上一一修复 'Unable to find bundled Java version. '问题。

  1. cd /Applications/Android\ Studio.app/Contents/jre

  2. ln -s ../jre jdk

  3. ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk

  4. flutter doctor -v

现在,您应该能够在终端的 flutter doctor 描述中看到错误消失了。

也许是最简单的选项 (MAC):

  • 导航至:cd /Applications/Android\ Studio.app/Contents/jre
  • 创建目录:mkdir jdk
  • 创建软link:ln -s Contents jdk/Contents

将 Android Studio 更新到 2020.3.1 补丁 3(在 MAC)后,我遇到了同样的错误。

Flutter从2.2.2升级到2.5.3后问题解决

我还安装了“Android SDK 命令行工具”。它的安装在这里解释:

运行 Flutter 医生,如果出现错误提示无法找到 java 捆绑包(特别是如果您有 Android Studio 版本 Artic Fox),运行 这个命令如果使用 Mac:

  1. cd /Applications/Android\ Studio.app/Contents/jre

  2. ln -s ../jre jdk

  3. ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk

  4. 颤动医生

此解决方案适用于 M1 Mac 用户

  1. 通过键入 /usr/libexec/java_home -V 查找本地 Java 版本。如果不存在,请安装最新的 ARM Java 版本 here
  2. 通过键入 /usr/libexec/java_home /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home
  3. 设置 Java_Home 路径(在我的例子中是 jdk-17.0.1.jdk)
  4. 在终端中输入所有这些
cd /Applications/Android\ Studio.app/Contents/jre
ln -s ../jre jdk
ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk
  1. 最后 运行 flutter doctor -v 查看所有详细更改

接受的解决方案对我稍作修改。我必须添加 -f(或使用 --force)选项才能使其工作(这是因为 ln 失败,文件存在,我一直忽略 - 现有文件一定有问题)。

cd /Applications/Android\ Studio.app/Contents/jre
ln -s -f ../jre jdk
ln -s -f "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk

flutter doctor -v

我是 运行 macOS 蒙特雷