迁移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
- Windows:
- 确保
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目录
- Windows:删除
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
- Windows:
- 验证有效后,可将上述命令添加到终端配置文件,确保每次启动终端自动生效
5. 验证修复结果
运行flutter doctor -v,确认输出中的Java路径已更新为JDK17的正确路径,且无Java相关错误提示。
内容的提问来源于stack exchange,提问作者Martinus Goh
相关产品推荐
相关产品推荐

