执行flutter doctor --android-licenses遇LinkageError问题排查与解决
问题成因与解决方案
成因
错误里的class file version 61.0对应Java 17,55.0对应Java 11。你的终端当前使用的Java Runtime是Java 11,而Android SDK Manager(SdkManagerCli)是用Java 17编译的——低版本JVM无法加载高版本编译的类文件,因此抛出UnsupportedClassVersionError。
解决方案
方法1:使用Android Studio自带的JDK执行命令
Android Studio自带适配的JDK,直接指定路径即可解决:
- 先找到自带JDK的路径:
- Windows:
C:\Program Files\Android\Android Studio\jbr - macOS:
/Applications/Android Studio.app/Contents/jbr - Linux:
/usr/local/android-studio/jbr
- Windows:
- 终端临时切换JDK后执行命令:
- Windows(PowerShell):
$env:JAVA_HOME="C:\Program Files\Android\Android Studio\jbr" $env:Path="$env:JAVA_HOME\bin;$env:Path" flutter doctor --android-licenses - macOS/Linux:
export JAVA_HOME=/Applications/Android Studio.app/Contents/jbr export PATH=$JAVA_HOME/bin:$PATH flutter doctor --android-licenses
- Windows(PowerShell):
方法2:全局升级Java到17及以上
若需要长期解决,直接安装Java 17并设为系统默认:
- 下载安装Java 17(OpenJDK或Oracle JDK均可)
- 配置系统环境变量:
- 将
JAVA_HOME设置为Java 17的安装路径 - 把
JAVA_HOME/bin添加到系统PATH的最前端
- 将
- 执行
java -version确认输出为Java 17 - 重启终端后,再次执行
flutter doctor --android-licenses
方法3:通过Android Studio图形界面处理许可证
嫌命令行麻烦的话,直接用图形界面操作:
- 打开Android Studio,点击
Tools > SDK Manager - 切换到
SDK Tools标签,勾选Android SDK Command-line Tools (latest),点击Apply完成安装 - 安装结束后重启Android Studio,再尝试执行命令,或者直接在SDK Manager中找到许可证选项完成同意操作
内容的提问来源于stack exchange,提问作者Jaimin Modi
相关产品推荐
相关产品推荐

