执行flutter doctor --android-licenses遇Java版本不兼容错误求解决
解决
flutter doctor --android-licenses的Java版本不兼容问题 报错原因
这个错误本质是Android SDK工具(如sdkmanager)的编译版本(class file version 55.0对应JDK11)和当前环境实际运行的Java版本(class file version 52.0对应JDK8)不匹配。即使你安装了JDK11,大概率是系统环境变量没正确配置,或者Android SDK工具没有调用到正确的JDK版本。
修复步骤
确认JDK11环境变量配置正确
- 终端执行
java -version和javac -version,确保输出均为JDK11版本(例如openjdk version "11.0.18")。 - 检查
JAVA_HOME变量:- Linux/macOS:执行
echo $JAVA_HOME,输出需指向JDK11的安装目录(如/usr/lib/jvm/java-11-openjdk-amd64)。 - Windows:执行
echo %JAVA_HOME%,输出需指向JDK11的安装路径(如C:\Program Files\Java\jdk-11.0.18)。
- Linux/macOS:执行
- 若配置错误,手动更新环境变量:
- Linux/macOS:在
~/.bashrc或~/.zshrc中添加:
执行export JAVA_HOME=/path/to/jdk11 export PATH=$JAVA_HOME/bin:$PATHsource ~/.bashrc(或对应配置文件)生效。 - Windows:在「系统属性-高级-环境变量」中设置
JAVA_HOME为JDK11路径,将%JAVA_HOME%\bin移至Path变量列表最顶端。
- Linux/macOS:在
- 终端执行
强制指定JDK11运行
sdkmanager
直接用JDK11的Java可执行文件运行许可证命令,绕开系统默认Java版本:# 替换为你的JDK11路径和Android SDK路径 /path/to/jdk11/bin/java -jar /path/to/android/sdk/tools/bin/sdkmanager --licenses按提示输入
y接受所有许可证即可。升级Android SDK命令行工具
打开Android Studio,进入SDK Manager→SDK Tools,勾选Android SDK Command-line Tools (latest)并安装。新版工具对JDK11的兼容性更强,能彻底解决版本匹配问题。验证修复效果
重新执行flutter doctor --android-licenses,完成许可证接受后,运行flutter doctor确认Android相关项无报错。
内容的提问来源于stack exchange,提问作者totoro
相关产品推荐
相关产品推荐

