如何解决Flutter Doctor报错:Android toolchain无法执行Java路径检测版本
以下是几个针对性的排查和解决步骤:
检查Java文件执行权限
运行ls -l /opt/homebrew/opt/openjdk@17/bin/java,确认输出结果中该文件的权限包含x(执行权限)。如果没有,执行sudo chmod +x /opt/homebrew/opt/openjdk@17/bin/java添加执行权限。验证Flutter是否读取到正确的JAVA_HOME
先执行echo $JAVA_HOME,确认输出为/opt/homebrew/opt/openjdk@17。再执行flutter doctor -v,查看日志中显示的Java路径是否与配置一致。若不一致,执行source ~/.zshrc刷新配置后重新运行flutter doctor,或直接重启终端。重装并修复Homebrew版OpenJDK
执行brew reinstall openjdk@17重新安装,完成后执行brew link openjdk@17 --force(若提示需要覆盖现有链接),确保OpenJDK的路径链接正确。手动为Flutter指定Java路径
在终端执行以下命令,临时指定Java路径后测试:export JAVA_HOME=/opt/homebrew/opt/openjdk@17 export PATH="$JAVA_HOME/bin:$PATH"执行后立刻运行
flutter doctor,若问题解决,可将这两行添加到~/.zshrc文件末尾,确保终端启动时自动加载。确认系统默认Java路径
执行which java,查看输出是否为/opt/homebrew/opt/openjdk@17/bin/java。若不是,执行brew info openjdk@17,按照提示设置默认Java版本,例如执行echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc。
内容的提问来源于stack exchange,提问作者ZeroOne

