我遇到了一个奇怪的问题。在更新Android Studio之前,flutter doctor 一切正常。但是一旦我更新了Android Studio后,运行doctor时它会显示“无法找到捆绑的Java版本”。我已经下载了Java安装程序并在我的M1 Mac上安装了它,但是在重新启动后,运行flutter doctor仍然显示相同的错误。奇怪的是,当我卸载Arctic Fox版本并重新安装旧版本的Android Studio时,再次运行doctor时一切都正常。我该如何解决这个问题?
我遇到了一个奇怪的问题。在更新Android Studio之前,flutter doctor 一切正常。但是一旦我更新了Android Studio后,运行doctor时它会显示“无法找到捆绑的Java版本”。我已经下载了Java安装程序并在我的M1 Mac上安装了它,但是在重新启动后,运行flutter doctor仍然显示相同的错误。奇怪的是,当我卸载Arctic Fox版本并重新安装旧版本的Android Studio时,再次运行doctor时一切都正常。我该如何解决这个问题?
在将Android Studio更新到2020.3.1 Patch 3(在MAC上)后,我遇到了相同的错误。
将Flutter从2.2.2升级到2.5.3后,问题得到解决。
我还安装了"Android SDK命令行工具"。安装方法可以在此处找到:https://dev59.com/P1EG5IYBdhLWcg3wT51R#68492909
也许最简单的选项(MAC):
cd /Applications/Android\ Studio.app/Contents/jre
mkdir jdk
ln -s Contents jdk/Contents
globals.fs.path.join(directory, 'jre', 'jdk', 'Contents', 'Home')
的代码,然后你就可以知道应该为“doctor”设置什么路径了。 - crzorz这是@crzorz的额外答案对我有用。 "YOUR_PATH/flutter/packages/flutter_tools/lib/src/android/android_studio.dart"。在文件底部,您将看到类似于“globals.fs.path.join(directory,'jre','jdk','Contents','Home')”的行,正如@crzorz所提到的。
这些行清楚地显示了在MacOS(旧版和新版)和其他操作系统上,“flutter doctor”如何找到所谓的捆绑Java。
我使用的是Android Studio Electric Eel。我解决问题的方法是“创建一个名为jre的符号链接,指向jbr”。因为文件夹jbr(JetBean Runtime)具有java.exe和其他Java运行时文件,但flutter doctor仍然尝试查找名为jre的文件夹。
更新至:
Android Studio 2022.1 Electric eel + Java 19 + VS Code + Windows 10 x64
之前:请确保您的JAVA_PATH设置正确
1- 以管理员身份运行CMD [不要使用POWERSHELL,因为mklink
只适用于CMD]
2- 运行命令mklink /d "C:\Program Files\Android\Android Studio\jre" "C:\Program Files\Android\Android Studio\jbr"
3- 运行命令flutter doctor
,问题解决,但随后出现了许可证问题,所以
4- 运行命令flutter doctor --android-licenses
,等待并接受所有许可证
其他方法无效,会抛出错误:“ bla bla bla...已存在...”为什么?
由于mklink
命令的结构:mklink
[选项:/d /j /h rd del]
"路径+名称文件夹/文件,您想要{jre}"
"路径+名称文件夹/文件,链接{jbr}"
翻译成人类语言:创建一个符号链接[mklink /d],将名称为jre的文件夹链接到名称为jbr的文件夹中。
请确保对文件路径使用“双引号”,并说“请”而不是“就这样做”(cmd会察觉到您的匆忙)。
如果您不按此方式操作,则可能会在使用sdkmanager
和启动设备时遇到问题,因为新版Android Studio不使用jre,这就是为什么许多Android设备无法启动并出现60秒问题的原因。
将JDK的所有内容复制并粘贴到JRE文件中,对我来说起作用了。
之后,我更新了我的环境变量路径。
$JAVA_HOME
目录?您可能需要检查您的 Java 版本是否与稳定版 AS 2020.3.1 和 M1 兼容。 - mochadwi