我正在使用 android studio 开发 android 原生和 flutter 项目。我的android本机项目jdk设置为
/Applications/AndroidStudio.app/Contents/jbr/Contents/Home
并且我已经下载了jdk17.0.12并将其安装在我的机器中。我还安装了 jdk23 并删除了它,因为我想继续使用 jdk17。我已经使用 nano ~/.zshrc
配置了 JAVA_HOME 并添加了路径。这是我的全部清单。
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export ANDROID_HOME=/Users/$USER/Library/Android/sdk
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
export PATH=/opt/homebrew/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr$
当我尝试运行我的 flutter 应用程序时,出现以下错误。
ERROR: JAVA_HOME is set to an invalid directory: /Users/srvenk/Library/Java/JavaVirtualMachines/openjdk-23/Contents/Home
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
Error: Gradle task assembleDebug failed with exit code 1
我尝试运行
flutter doctor
,但出现了一个与 JAVA_HOME 相关的错误。
Cannot execute /Users/srvenk/Library/Java/JavaVirtualMachines/openjdk-23/Contents/Home/bin/java to determine the version
我已经从我的机器中删除了 jdk23 并将 JAVA_HOME 变量设置为 /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
。但我仍然遇到同样的问题。我尝试使 android studio 中的缓存无效并多次重新启动我的机器。但仍然没有运气。有人可以帮我解决这个问题吗?
嘿,如果你在 zsh shell 中执行
echo $JAVA_HOME
会发生什么,
在 android studio 中,您可以转到“首选项”>“构建、执行、部署”>“构建工具”>“Gradle”,应该有一个 Gradle JDK 选项,尝试将其更改为 JDK 17。
请确保 zsh 是您的默认 shell。
如果上述方法不起作用,希望本指南可以帮助您,https://www.devgem.io/posts/resolving-flutter-s-java-home-error-on-macos-step-by-step-guide