我遇到了一个奇怪的问题。在更新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时一切都正常。我该如何解决这个问题?
ln -s
命令是做什么的? - Raphael Pinel如果您正在使用 Android Studio Electric Eel | 2022.1.1。
在 Mac 上:
感谢@Javi提供的替代方法。
对于步骤2和3,ln -s jbr jre
也可以完成任务。我认为这是最好的方法。
jbr
文件夹中的内容发生变化,你就不需要再次复制文件夹。在第二步中,只需键入 ln -s jbr jre
,即可解决问题。 - Javi这里是我在M1上设置Android Studio所需完成的所有步骤的详细解释。
将Android Studio安装到Applications文件夹中。
从 jre
文件夹创建符号链接到一个新的 jdk
文件夹。(由于此问题)
cd /Applications/Android\ Studio.app/Contents/jre
ln -s ../jre jdk
JAVA_HOME
环境变量nano ~/.zshrc
export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home"
source ~/.zshrc
安装 Android SDK 命令行工具(需要接受许可证)
假设你已将 Flutter 添加到路径中,此时它应该可以正常工作了。
flutter doctor
/Applications/Android Studio.app/Contents/jre/
目录下没有jdk
文件夹。我也是在M1芯片的Mac上。你有什么想法,我可能错过了什么吗? - Isuruln -s
会创建一个软链接指向现有的jre
目录,从而创建jdk
目录。 - Suragch这是Windows的解决方法,对我有效。 我正在使用Android Studio2022.1.1.19版本。
注意:此解决方法在我的电脑上有效;如果在您的电脑上无效,请在下面留言。
在我的情况下,使用搭载Intel处理器的macOS Ventura,在将Android Studio升级到Electric Eel后,我需要按照以下步骤才能使Flutter正常工作:
cd /Applications/Android\ Studio.app/Contents/
ln -s jbr jre
flutter config --android-studio-dir /Applications/Android\ Studio.app/Contents
第3步非常重要,如果不执行该步骤,则 flutter doctor --android-licenses
始终会失败...
我安装了最新版的JAVA SDK、Flutter和Android Studio,并直接在终端中逐个运行以下命令以解决“无法找到捆绑的Java版本”问题。
cd /Applications/Android\ Studio.app/Contents/jre
ln -s ../jre jdk
ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk
flutter doctor -v
现在,你应该能够在终端中看到“flutter doctor”描述中的错误已经消失了。
本解决方案适用于M1 Mac用户
/usr/libexec/java_home -V
查找本地Java版本。如果不存在,请在此处下载最新的ARM Java版本。/usr/libexec/java_home /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home
设置Java_Home路径(在我的情况下为 jdk-17.0.1.jdk)。cd /Applications/Android\ Studio.app/Contents/jre ln -s ../jre jdk ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk
flutter doctor -v
以查看所有详细更改zsh: permission denied: /Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home
,希望设置Java_Home路径,但它显示 permission denied /Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home
。我应该在其他地方输入吗?如何给它权限? - Samsudo export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home
或者chown
sudo chown -R $(whoami) /Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home
这将使你拥有该目录的所有权,因此你不必每次访问它时都使用sudo。 - Alphapicocd /Applications/Android\ Studio.app/Contents/jre
ln -s ../jre jdk
ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk
Flutter Doctor
对我来说,接受的解决方案需要稍作修改才能工作。我必须添加 -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 Monterey的操作系统。
$JAVA_HOME
目录?您可能需要检查您的 Java 版本是否与稳定版 AS 2020.3.1 和 M1 兼容。 - mochadwi