在 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 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