【问题标题】:Flutter - Android license status unknownFlutter - Android 许可证状态未知
【发布时间】:2020-11-17 08:47:06
【问题描述】:

我一直在四处寻找,试图找出为什么我会继续收到此异常。我见过类似的问题,但没有一个可以解决我的问题。

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

你能帮忙吗,我很困惑,任何事情都会有帮助

【问题讨论】:

  • 你安装了整个 android studio 还是只安装了 cmd 工具?
  • 所有Android Studio

标签: java android android-studio flutter


【解决方案1】:

我相信flutter doctor --android-licenses 只是从Android SDK 调用&lt;ANDROID_HOME&gt;/tools/bin/sdkmanagersdkmanager 是一个小型包装器,可以找到 JVM 并启动 java 程序。

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

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

很遗憾,sdkmanager 无法在新的 Java 版本上运行。所以可能有几个解决方案:

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

【讨论】:

  • 谢谢,我安装了 jdk 8 并将我的 JAVA_HOME 变量设置为它,它最终工作了:)
猜你喜欢
  • 2019-08-04
  • 2020-12-24
  • 2020-07-07
  • 2020-11-24
  • 2019-10-19
  • 2018-09-20
  • 2020-03-25
  • 1970-01-01
  • 2019-12-27
相关资源
最近更新 更多