在 Flutter 上找不到捆绑的 Java 版本

Posted

技术标签:

【中文标题】在 Flutter 上找不到捆绑的 Java 版本【英文标题】:Unable to find bundled Java version on Flutter 【发布时间】:2018-12-19 06:31:28 【问题描述】:

我有 android Studio 3.0 版 当我使用命令flutter doctor 时,它会显示以下内容,

找不到捆绑的 Java 版本

我当前的 Java 版本是 (build 1.8.0_131-b11)

【问题讨论】:

你看过这个吗? github.com/flutter/flutter/issues/15514#issuecomment-373329235 我的电脑上没有任何旧版本的 android stuido。 您使用的是 Windows、Mac 还是 Linux? 我目前使用的是 windows 10 我遇到了同样的问题,尽管我的 Android Studio 是从官方 Android 开发者门户全新安装的。 【参考方案1】:

MAC OS Beta、Xcode Beta、Android Studio Preview 的 Beta 版本。

只需确保您的路径方式对 Flutter 的应用程序文件正确。

要修复 Android Studio Preview 的 JAVA Bundle,请执行以下操作:

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

ln -s ../jre jdk

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

flutter doctor -v

【讨论】:

【参考方案2】:

就我而言,我使用的是 macOS,我的下载文件夹中有一份 Android Studio Preview 副本。我刚刚删除了那个 Android Studi Preview 文件并且错误消失了:)

【讨论】:

这也是我的问题,谢谢! 非常感谢,这也是我的问题 同样,我先下载了预览版.. 它还不适用于颤振。从Application文件夹中删除,错误消失了。【参考方案3】:

我最近在 Ubuntu 20.04 LTS 上遇到了同样的问题。

经过大量搜索后,我通过运行以下提及的命令从 Flutter 配置中删除了 Android Studio 路径,从而解决了这个问题。

flutter config --android-studio-dir=   

解决方案:

【讨论】:

【参考方案4】:

我使用macos big sur 11.5.1也出现上述情况并已成功修复错误: Unable to find bundled Java version on Flutter && ! Some Android licenses are not accepted. To resolve this, run: flutter doctor --android-licenses CH-0 / 203.7678000 是你安装的版本,如果你必须修复它

cd ~/Library/Application\ Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7678000/Android\ Studio.app/Contents/jre

sudo ln -s ../jre jdk

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

颤振医生--android-licenses

颤振医生-v`

【讨论】:

【参考方案5】:

如@Nalawala answer 链接中的mkyong 所述,JAVA_HOME 路径必须引用 Java 1.8 JDK/JRE。

在 Java 11 中,flutter doctor --android-licenses 命令会抛出一些 ClassNotFoundException's

【讨论】:

【参考方案6】:

就我而言,我最近购买了 M1 Macbook,然后使用 Jetbrains Toolbox 安装了 Android Studio,但是

此文件夹不存在

/Users/username/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7583922/Android Studio.app/Contents/jre

所以我按照这个评论所说的,现在工作得很好 https://github.com/flutter/flutter/issues/76215#issuecomment-893512809

1.- 转到 Applications 文件夹,然后右键单击您的 android studio 应用程序 2.- 点击显示包内容 3.- 在 jre 文件夹中打开一个终端,然后创建新的 jdk 文件夹

mkdir jdk

4.- 将文件夹内容移动到 jdk 中

mv Contents jdk

刷新终端后,flutter doctor 工作正常!

【讨论】:

这可能会破坏其他东西。此外,当您更新 Android Studio 时它会停止工作【参考方案7】:

如果您使用的是 Windows 并安装了新版本的 android,请检查 C:\Program Files\Android\Android Studio 中是否存在旧的 Android Studio 文件夹。如果存在删除那些。错误将消失!

【讨论】:

这对我来说很好。谢谢!【参考方案8】:

1.将路径写在引号中,即flutter config --android-studio-dir "C:\Program Files\Android\Android Studio"。

2.请检查android Studio的正确路径。

3.做第一步,运行flutter doctor。

【讨论】:

所有这些都已在其他答案中提出。【参考方案9】:

Apple Silicon 用户问题已解决!

首先这样做:Flutter Doctor --android-licenses : Exception in thread "main" java.lang.NoClassDefFoundError

然后:

    确保使用此处已列出的相同文章在 .zshrc 中设置 Java_Home 路径。他解释了使用 .zshenv,但我们将编辑 .zshrc 文件。

https://mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/#what-is-usrlibexecjava-home

    从系统中卸载 Java 从 Azul 重新安装 M1 特定版本。选择 Java 16。选择 ARM 64 位 https://www.azul.com/downloads/?package=jdk

这就是我被困的地方,但最终找到了解决办法

运行这些命令:

    cd /Applications/Android\ Studio.app/Contents/jre ln -s /Library/Java/JavaVirtualMachines/zulu-16.jdk jdk 颤振医生-v

【讨论】:

我按照您的指示进行操作,没有任何改变。我正在使用 m1 MBP。【参考方案10】:

对于 Mac 用户

使用下面的文章设置 Java_Home 路径,然后在应用下面的命令之后

https://mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/#what-is-usrlibexecjava-home

在终端上输入下面的命令

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

编辑#1:

对于使用JetBrains Toolbox 的 Mac 用户,解决方法如下:

使用下面的文章设置 Java_Home 路径,然后在应用下面的命令之后

https://mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/#what-is-usrlibexecjava-home

在终端上输入下面的命令

username 更改为您的 macOS 用户名

cd /Users/username/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7583922/Android Studio.app/Contents/jre
ln -s ../jre jdk
ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk
flutter doctor -v

【讨论】:

更新到Android Studio北极狐2020.3.1后完美解决 在 7 月 30 日更新到 Android Studio 北极狐 2020.3.1 后与我合作。谢谢 我正在使用JetBrains Toolbox,它将Android Studio 安装在另一个目录/Users/username/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7583922/Android Studio.app 上。我将编辑您的出色答案,以确保它支持所有 macOS 用户。你的解决方案很棒。 谢谢。这解决了我的 Android Studio 问题(arctic fox 2020.3.1 - July 26, 2021 built)。 @Ambitions,谢谢你的路径。 升级到北极狐后为我打破了。为什么他们不能简单地解决这个问题?为什么每次更新后,我们都需要介入并修复它们造成的混乱?【参考方案11】:

我今天早上收到这个错误,当更新ANDROID STUDIO到新版本时,所以要解决这个问题你需要从https://developer.android.com/studio/archive找到以前的版本并设置,它对我有用! (对不起,如果存在语法错误)

【讨论】:

那里有很多版本。你去了哪家?【参考方案12】:

仔细检查路径,解决了我用引号包裹路径的问题...

之前

之后

【讨论】:

【参考方案13】:

如果您使用的是 Windows,请转到此目录 C:\Program Files\Android\Android Studio 并检查旧的 Android Studio 文件夹是否存在,如果存在则删除这些文件夹。它会起作用的。

【讨论】:

是的,适用于北极狐升级。旧文件夹只有 JRE 文件夹,LOL。谢啦。请在答案中突出显示 FOR Windows。【参考方案14】:

有这个问题✗ Unable to find bundled Java version. 似乎问题出在 Android Studio(测试版)

更改了我的 Android Studio(稳定版) 以解决问题

以下是每个 Android Studio

flutter doctor -v 详细信息

测试版 Android Studio

[!] Android Studio
    • Android Studio at /Applications/Android Studio Preview.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.

稳定的 Android Studio

[✓] Android Studio (version 4.2)
    • 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.8+10-b944.6916264)

即使这个问题仍然存在

检查 Java java -version which java

仔细检查这些是否存在于您的 .bashrc 或 .bash_profile 或 .zshrc 中

export PATH="$PATH:/usr/bin/java"
export JAVA_HOME=$(/usr/libexec/java_home)

【讨论】:

我安装了稳定版和测试版的 Android Studio,你是如何改变你的 Android Studio 的? 在 Android Studio 中将您的预览频道更新为稳定版。developer.android.com/studio/preview/… 感谢您的回复,但我需要使用 Beta 来获得 m1 mac 支持,将尝试一次看看。 不知道 M1 mac 会有什么不同。 m1 mac 有什么修复方法吗?【参考方案15】:

我在运行 flutter doctor 时遇到此错误。

解决方案:

转到显示错误的路径后面的文件“java”。 然后右键单击该文件并转到“属性”。 然后转到权限并选中框“允许将文件作为程序执行”。 最后,运行flutter doctor查看No issues found!

【讨论】:

【参考方案16】:

请确保 Java 在您的 PATH 中,并且 JAVA_HOME 已定义并指向 JDK。我让 Windows 将 JRE 而不是 JDK 放在路径中,这会导致各种问题。

请查看您的 PATH 环境变量并删除所有与 Java 相关但不指向 JDK 文件夹的内容。

Oracle 在此处有一些关于如何执行此操作的文档:Installing Java and setting JAVA_HOME

【讨论】:

以上是关于在 Flutter 上找不到捆绑的 Java 版本的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 2:无法确定捆绑的 Java 版本

Flutter Doctor - 无法确定捆绑的 Java 版本

在 M1 Mac 上运行 Flutter Doctor 时出错 - 无法找到捆绑的 Java 版本

Flutter MissingPluginException(在通道flutter.baseflow.com/permissions/methods上找不到方法checkPermissionStatu

(在通道 plugins.flutter.io 上找不到方法 canLaunch 的实现...)

Flutter:错误:MissingPluginException(在通道 plugins.flutter.io/path_provider 上找不到方法 getTemporaryDirectory