VS Code运行Flutter应用遇Java版本不兼容问题求助
解决Flutter构建时Java版本不匹配问题(本地JVM非1.8但仍报错)
核心原因
你系统全局JVM是13,但Flutter/Gradle构建时实际调用的是其他路径的旧版JDK(比如Android Studio自带的JDK 1.8,或Gradle配置指定了旧路径),导致版本不匹配报错。
解决方案步骤
1. 定位Flutter实际使用的JDK
先执行命令确认Flutter构建时依赖的JDK版本:
flutter doctor -v
查看输出中Java version部分,比如:
Java version: OpenJDK Runtime Environment (build 1.8.0_292-release-1884-b01)
这会显示Flutter当前使用的JDK路径,明确问题根源。
2. 强制Gradle使用指定JDK
在项目的android/gradle.properties文件末尾添加以下配置,替换为你本地Java 11+的实际路径(Ubuntu可通过update-alternatives --list java查看所有可用JDK路径):
org.gradle.java.home=/usr/lib/jvm/java-13-openjdk-amd64
3. 配置VS Code的Java运行时
打开VS Code,按Ctrl+Shift+P唤起命令面板,输入Java: Configure Java Runtime:
- 切换到「Projects」标签页
- 找到你的Flutter项目,选择Java 11+版本作为项目运行时
4. 检查Android Studio的JDK配置(若已安装)
即使使用VS Code,Flutter可能会调用Android Studio内置的JDK:
- 打开Android Studio,进入
File > Project Structure > SDK Location - 修改「JDK location」为Java 11+的路径,同步项目后再回到VS Code重新构建
5. 修正系统环境变量
检查全局JAVA_HOME是否指向正确JDK:
- 执行
echo $JAVA_HOME,若输出为1.8路径,编辑~/.bashrc或~/.zshrc:export JAVA_HOME=/usr/lib/jvm/java-13-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH - 执行
source ~/.bashrc(对应你的shell配置文件)使修改生效
关于Gradle版本的说明
你当前Gradle 7.4完全兼容Java 11+,无需修改版本。若要调整Gradle版本:
- 插件版本在
android/build.gradle的classpath 'com.android.tools.build:gradle:x.x.x'中修改 - Gradle wrapper版本在
android/gradle/wrapper/gradle-wrapper.properties的distributionUrl中修改
内容的提问来源于stack exchange,提问作者Arjun Malhotra
相关产品推荐
相关产品推荐

