Flutter-Android许可证状态未知

时间:2020-07-27 23:53:14

标签: java android android-studio flutter

我一直在广泛地寻找以找出为什么我继续收到此异常。我见过类似的问题,但是没有一个可以解决我的问题。

我每次运行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

请您帮忙,我很困惑,任何事情都会真正帮助您

1 个答案:

答案 0 :(得分:0)

我相信flutter doctor --android-licenses只是从Android SDK调用<ANDROID_HOME>/tools/bin/sdkmanagersdkmanager是一个小的包装程序,可找到JVM并启动Java程序。

以下行表示Java 9+用于运行sdkmanager

java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

不幸的是,sdkmanager无法在新的Java版本上运行。所以可能有几种解决方案:

  1. 在运行JAVA_HOME之前设置指向JDK 1.8的flutter doctor环境变量。例如。在Windows上set JAVA_HOME=...,在Linux上export JAVA_HOME=...
  2. Add missing libraries and get sdkmanager running on Java 11