Windows10下执行flutter doctor --android-licenses报Java错误,已安装SDK命令行工具
问题原因
该报错是因为你当前系统使用的JDK版本为9及以上,JDK从9版本开始移除了默认内置的JAXB(Java Architecture for XML Binding)相关类库,而旧版本的Android SDK Command-line Tools依赖该类库运行,因此触发类找不到异常。
解决方案
推荐按优先级尝试以下方案:
方案1:使用Android Studio内置JDK(兼容性最优)
- 找到Android Studio内置JRE路径,Windows系统默认路径为
C:\Program Files\Android\Android Studio\jre,如果你自定义安装了Android Studio,请替换为对应安装目录下的jre文件夹路径 - 打开系统环境变量配置面板:
- 新建系统变量
JAVA_HOME,变量值填写上述的jre文件夹完整路径 - 编辑系统变量
Path,将%JAVA_HOME%\bin条目移动到所有其他Java相关路径的最顶部,保证优先级最高 - 保存所有配置后,关闭所有已打开的终端/PowerShell窗口,重新打开后执行
java -version,确认返回的版本号为1.8.x开头即为配置生效
- 新建系统变量
- 重新执行
flutter doctor --android-licenses,按照提示输入y同意所有许可即可。
方案2:升级Android SDK Command-line Tools到最新版
新版本的Command-line Tools已经适配了高版本JDK,无需降级Java:
- 打开Android Studio,依次进入
Settings → Appearance & Behavior → System Settings → Android SDK → SDK Tools标签页 - 勾选
Android SDK Command-line Tools (latest),点击Apply完成安装 - 编辑系统环境变量
Path,确保%ANDROID_HOME%\cmdline-tools\latest\bin条目优先级高于其他旧版本的SDK工具路径 - 重启终端后重新执行
flutter doctor --android-licenses即可。
内容的提问来源于stack exchange,提问作者Alireza_Ez73
相关产品推荐
相关产品推荐

