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

迁移Flutter项目至新笔记本后运行报错:Java version is null

Flutter项目迁移后“Java version is null”问题解决方法

问题概述

新笔记本迁移Flutter项目后,运行时提示“Java version is null”;本地安装JDK17、Gradle7.6.3,但flutter doctor -v检测到不存在的JDK21路径,系统还错误建议设置JAVA_HOME为JDK21,旧设备上项目可正常运行。

解决步骤

1. 修正JAVA_HOME环境变量

  • 打开系统环境变量配置:
    • Windows:右键「此电脑」→ 属性 → 高级系统设置 → 环境变量
    • macOS/Linux:编辑终端配置文件(如~/.zshrc或~/.bash_profile)
  • 将JAVA_HOME设置为JDK17的实际安装路径,示例:
    • Windows:C:\Program Files\Java\jdk-17.0.9
    • macOS:/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
  • 确保Path(Windows)或PATH(macOS/Linux)变量中包含%JAVA_HOME%\bin(Windows)或$JAVA_HOME/bin(macOS/Linux),且该条目优先级高于其他JDK路径
  • 保存配置后重启所有终端,运行echo %JAVA_HOME%(Windows)或echo $JAVA_HOME(macOS/Linux)验证路径正确性

2. 清理缓存

  • 清理Flutter项目缓存:
    flutter clean
    flutter pub get
    
  • 删除Gradle本地缓存:
    • Windows:删除C:\Users\<你的用户名>\.gradle目录
    • macOS/Linux:删除~/.gradle目录

3. 检查项目Gradle配置

  • 打开项目android/build.gradle,确认compileSdkVersion、targetSdkVersion与JDK17兼容(Flutter 3.10+适配JDK17)
  • 检查gradle/wrapper/gradle-wrapper.properties中的distributionUrl是否指向Gradle7.6.3:
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip
    

4. 强制指定JDK运行项目

  • 终端临时指定JDK路径后启动项目(用于快速验证):
    • Windows:
      set JAVA_HOME=C:\Program Files\Java\jdk-17.0.9
      flutter run
      
    • macOS/Linux:
      export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
      flutter run
      
  • 验证有效后,可将上述命令添加到终端配置文件,确保每次启动终端自动生效

5. 验证修复结果

运行flutter doctor -v,确认输出中的Java路径已更新为JDK17的正确路径,且无Java相关错误提示。

内容的提问来源于stack exchange,提问作者Martinus Goh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 13:16:01