You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac M1芯片Flutter项目报错:JAVA_HOME指向无效目录求助

解决M1 MacBook Pro上Flutter运行时JAVA_HOME无效的问题

核心问题分析

你遇到的矛盾点在于:当前shell的JAVA_HOME配置正确,但Flutter/Gradle仍在读取旧的无效路径/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents,同时系统的/usr/libexec/java_home无法识别brew安装的OpenJDK,这是M1 Mac上brew安装Java的常见路径识别问题。

分步解决方案

  1. 确保shell环境变量完全生效

    • 执行命令刷新配置:
      source ~/.zshrc
      
    • 验证配置:
      echo $JAVA_HOME
      java -version
      
      确保输出的JAVA_HOME是/opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home,且java -version显示对应OpenJDK版本。
  2. 强制Android Studio使用正确JDK

    • 打开Android Studio,进入File > Project Structure > SDK Location
    • 在JDK location处,手动输入brew安装的JDK路径:/opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home
    • 点击Apply保存配置。
  3. 给Gradle设置全局JDK路径

    • 创建或编辑~/.gradle/gradle.properties文件,添加以下内容:
      org.gradle.java.home=/opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home
      
      这会强制所有Gradle项目使用指定的JDK,避免读取系统旧配置。
  4. 清理Flutter与Gradle缓存

    • 执行命令清理项目缓存:
      flutter clean
      flutter pub get
      
    • 再尝试运行项目:
      flutter run
      
  5. 排查冲突的环境配置文件

    • 检查是否有其他配置文件覆盖了JAVA_HOME,比如~/.bash_profile、/etc/profile或~/.profile,删除其中指向/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents的旧配置。
  6. 验证Android Studio架构匹配

    • 确保你安装的是arm64版本的Android Studio(M1原生版本),而非x86转译版本,避免架构不匹配导致的JDK识别问题。

内容的提问来源于stack exchange,提问作者Daniel Abera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 09:20:04