我一直在广泛地寻找以找出为什么我继续收到此异常。我见过类似的问题,但是没有一个可以解决我的问题。
我每次运行flutter doctor
时都会弹出:
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
X Android license status unknown.
Try re-installing or updating your Android SDK Manager.
See https://developer.android.com/studio/#downloads or visit visit
https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions.
我已经检查并且我的环境变量都已设置
然后,当我输入flutter doctor --android-licenses
时出现此错误
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:522)
... 5 more
请您帮忙,我很困惑,任何事情都会真正帮助您
答案 0 :(得分:0)
我相信flutter doctor --android-licenses
只是从Android SDK调用<ANDROID_HOME>/tools/bin/sdkmanager
。 sdkmanager
是一个小的包装程序,可找到JVM并启动Java程序。
以下行表示Java 9+用于运行sdkmanager
。
java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
不幸的是,sdkmanager
无法在新的Java版本上运行。所以可能有几种解决方案:
JAVA_HOME
之前设置指向JDK 1.8的flutter doctor
环境变量。例如。在Windows上set JAVA_HOME=...
,在Linux上export JAVA_HOME=...
sdkmanager
running on Java 11