macOS执行flutter doctor --android-licenses遇UnsupportedClassVersionError求助
解决macOS下
flutter doctor --android-licenses类版本兼容错误 问题原因
错误核心是Java类版本不兼容:SdkManagerCli工具由Java17(类文件版本61.0)编译,但当前运行它的Java环境仅支持到Java11(类文件版本55.0)——即便你安装了Java21,大概率是环境变量配置错误导致系统调用了旧版本Java;或是Android SDK命令行工具版本过旧,与高版本Java不兼容。
解决步骤
1. 验证并修复Java环境变量
- 打开终端,执行命令确认当前Java版本:
若输出不是java -versionopenjdk version "21.0.2",说明JAVA_HOME配置错误。 - Java21的默认安装路径通常为:
/Library/Java/JavaVirtualMachines/openjdk-21.jdk/Contents/Home - 编辑shell配置文件(zsh用户编辑
~/.zshrc,bash用户编辑~/.bash_profile):open -e ~/.zshrc - 在文件末尾添加以下内容(替换为你的Java21实际路径):
export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-21.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH - 保存文件后,执行命令使配置生效:
source ~/.zshrc - 再次执行
java -version,确认版本为21.0.2。
2. 更新Android SDK命令行工具
- 若使用Android Studio:
打开Android Studio,进入Settings(或Preferences)→Appearance & Behavior→System Settings→Android SDK→SDK Tools,勾选Android SDK Command-line Tools (latest),点击Apply完成更新。 - 若未安装Android Studio,直接用终端执行:
注意将/Users/username/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager --updateusername替换为你的实际系统用户名。
3. 重新运行许可命令
在终端执行:
flutter doctor --android-licenses
按提示输入y接受所有Android SDK许可即可。
备选方案:降级到Java17(若Java21仍有兼容问题)
如果上述步骤无效,可尝试降级到Java17(Android SDK工具对Java17的兼容性更稳定):
- 安装openjdk-17,设置
JAVA_HOME指向Java17的安装路径,重复步骤1的配置。 - 之后重新执行
flutter doctor --android-licenses。
内容的提问来源于stack exchange,提问作者dinomim
相关产品推荐
相关产品推荐

