You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter编译Android 64位程序遇许可证及JDK相关问题求助

解决Flutter编译时Android许可证及sdkmanager的JAXB类缺失问题

我之前也碰到过完全一样的问题,根源就是你用的JDK 13.0.1和旧版Android SDK工具不兼容,给你一套亲测有效的解决方案:

第一步:降级JDK到8版本

Android SDK的旧版sdkmanager依赖Java EE里的JAXB API,但JDK 9及以上版本已经把这些API从JDK内置中移除了,这就是你看到javax.xml.bind.annotation.XmlSchema找不到错误的核心原因。你需要:

  • 卸载当前的JDK 13.0.1,安装Oracle JDK 8或者OpenJDK 8(两者任选其一即可)
  • 配置系统的JAVA_HOME环境变量,指向JDK 8的安装路径
  • 确保系统PATH环境变量里,JDK 8的bin目录排在其他JDK版本的前面,避免调用到旧版本

第二步:完成SDK更新和许可证配置

  1. 重新打开命令行(确保环境变量生效),执行sdkmanager --update,这时候应该能正常更新Android SDK了
  2. 接着运行flutter doctor --android-licenses,按照提示输入y接受所有许可证协议
  3. 最后再执行flutter doctor,检查Android toolchain的问题是否已经解决

问题链解释

你遇到的一系列问题其实是连锁反应:

  • 最初的JAVA_HOME提示,大概率是升级Android Studio后,它对JDK版本的检测变得更严格了
  • 升级后出现的许可证状态未知,是因为SDK需要更新,但旧的sdkmanager和JDK 13不兼容,导致无法完成更新,进而无法验证许可证状态

你提供的命令执行日志参考:

c:\src\flutter>flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.9.1+hotfix.5, on Microsoft Windows [Version 10.0.17763.805], locale en-CA)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    X Android license status unknown. Try re-installing or updating your Android SDK Manager. See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for detailed instructions.
[√] Android Studio (version 3.5)
[!] Connected device
! Doctor found issues in 2 categories.

c:\src\flutter>flutter doctor --android-licenses
A newer version of the Android SDK is required. To update, run:
C:\Users\mctrivia\AppData\Local\Android\sdk\tools\bin\sdkmanager --update

c:\src\flutter>C:\Users\mctrivia\AppData\Local\Android\sdk\tools\bin\sdkmanager --update
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax/xml/bind/annotation/XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 5 more

内容的提问来源于stack exchange,提问作者Matthew Cornelisse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:20:58