【问题标题】:Unable to find bundled Java version with flutter doctor, after updating Android studio Arctic Fox(2020.3.1) on M1 Apple Silicon在 M1 Apple Silicon 上更新 Android Studio 北极狐(2020.3.1)后,找不到与颤振医生捆绑的 Java 版本
【发布时间】:2021-10-04 17:28:21
【问题描述】:

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

【问题讨论】:

  • 使用了哪个$JAVA_HOME目录?您可能想检查您的 Java 版本是否与稳定的 AS 2020.3.1 和 M1 兼容
  • 当你还想使用 Android Studio 北极狐版时,这里是这个问题的答案stackoverflow.com/a/68575967/9101876

标签: android flutter apple-m1 apple-silicon


【解决方案1】:

复制文件夹 /Applications/Android Studio Preview.app/Contents/jre/Contents 到 /Applications/Android Studio Preview.app/Contents/jre/jdk/Contents

【讨论】:

  • 此解决方法可能违反标准 AS 默认 JAVA_HOME 目录,您是否已经在本地尝试过?
  • 可以查看这个脚本代码,YOUR_PATH/flutter/packages/flutter_tools/lib/src/android/android_studio.dart,找到globals.fs.path.join(directory, 'jre', 'jdk', 'Contents', 'Home')这样的代码,就可以得到什么路径你应该为“医生”设置
【解决方案2】:

答案已经发布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

【讨论】:

  • 自从新的 android studio artic fox 更新以来,flutter 现在似乎需要 java 11 而不是 java 8
  • 我刚刚用最新的flutter和最新的android studio完成了这个过程。此处提供的解决方案消除了“无法找到 java 版本”错误,但是当您尝试接受许可证时,您会在某些 XML 解析器类上获得 ClassNotFoundException。那是因为 Android Studio 现在带有 Java 1,它不再有很多 JEE 的东西了。所有这一切的简单解决方案是将您的 JAVA_HOME 环境变量设置为您可能拥有的任何 Java 8 安装,这可以解决所有问题。
  • 在 Mac OS 上工作
  • 为我工作而不损害预安装的 java 版本 11.0
  • 这对我有用 - 注意我必须先手动安装最新的 JDK(我使用的是 MacOS big sur)显然它没有安装程序。之后,这完美无缺。
【解决方案3】:

对于在 M1 上设置 Android Studio 所要做的一切,这里有一个更全面的答案。

  1. 将 Android Studio 安装到 Applications 文件夹

  2. 创建从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 doctor

【讨论】:

  • command-line tools 对于接受包裹很重要
  • 我在非 M1 mac 上遇到了类似的问题。上述解决方案已修复。似乎它与M1芯片无关。这个简单的 hack 解决了“找不到 java 的文件包”的问题。
  • 我的机器上没有jdk' directory inside /Applications/Android Studio.app/Contents/jre/`。我也在 M1 Mac 上。知道我可能缺少什么吗?
  • @Isuru,对,这就是问题所在。写入ln -s 会创建jdk 目录作为指向现有jre 目录的软链接。
  • @Suragch 明白了!谢谢你的解释:)
【解决方案4】:

我确实安装了新版本的 JAVA SDK、flutter、Android Studio 并直接在终端上一一运行以下命令来修复“无法找到捆绑的 Java 版本。 '问题。

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

  2. ln -s ../jre jdk

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

  4. 颤振医生-v

现在,您应该可以在终端的颤振医生描述中看到错误消失了。

【讨论】:

    【解决方案5】:

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

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

    【讨论】:

      【解决方案6】:

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

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

      我还安装了“Android SDK 命令行工具”。它的安装在这里解释:https://stackoverflow.com/a/68492909/6839552

      【讨论】:

        【解决方案7】:

        运行 Flutter doctor,如果出现错误提示找不到捆绑的 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. 颤振医生

        【讨论】:

          【解决方案8】:

          此解决方案适用于 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 设置Java_Home 路径(在我的情况下为jdk-17.0.1.jdk)
          3. 在终端中输入所有这些
          cd /Applications/Android\ Studio.app/Contents/jre
          ln -s ../jre jdk
          ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk
          
          1. 最后运行flutter doctor -v查看所有细节变化

          【讨论】:

            猜你喜欢
            • 2021-09-17
            • 2021-08-19
            • 2021-10-20
            • 1970-01-01
            • 1970-01-01
            • 2021-12-23
            • 1970-01-01
            • 2021-01-28
            • 2021-11-25
            相关资源
            最近更新 更多