Flutter Android许可证校验失败:SDK编译出错,Java版本不兼容
解决Flutter Android许可证校验时的SDK编译失败问题
问题根源
报错提示的UnsupportedClassVersionError说明:Android SDK的sdkmanager工具是用Java 17(类文件版本61.0)编译的,但当前环境使用的Java版本最高仅支持到55.0(对应Java 11),版本不兼容导致运行失败。
解决步骤
检查当前Java版本
终端执行命令:java -version确认输出的版本是否为11或更低版本。
安装Java 17或更高版本
若使用Homebrew管理包(Mac环境),执行:brew install openjdk@17配置环境变量(全局生效)
打开你的shell配置文件(如~/.zshrc或~/.bash_profile),添加以下内容:export PATH="/usr/local/opt/openjdk@17/bin:$PATH" export JAVA_HOME="/usr/local/opt/openjdk@17"执行命令使配置生效:
source ~/.zshrc(注:若使用bash则替换为
source ~/.bash_profile)验证Java版本
再次执行java -version,确认输出为Java 17.x系列版本。重新运行许可证校验
终端执行:flutter doctor --android-licenses按照提示完成所有许可证的同意操作即可。
备选方案(不全局升级Java)
若不想修改全局Java版本,可单独为sdkmanager指定Java路径:- 找到
sdkmanager脚本路径:/Users/ruban.dharmaraj/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager - 编辑该脚本,在文件开头添加:
export JAVA_HOME="/usr/local/opt/openjdk@17" - 保存后重新运行
flutter doctor --android-licenses。
- 找到
内容的提问来源于stack exchange,提问作者Ruban Dharmaraj
相关产品推荐
相关产品推荐

