【问题标题】:Flutter Doctor, Android licenses status unknownFlutter Doctor,Android 许可证状态未知
【发布时间】:2020-12-24 21:17:41
【问题描述】:

Flutter 医生说找不到我的 android 许可证状态。

[√] Flutter (Channel stable, 1.20.3, on Microsoft Windows [Version 10.0.19041.450], locale en-US)
[!] Android toolchain - develop for Android devices (Android SDK version 30.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/docs/get-started/install/windows#android-setup for detailed instructions.
[√] Android Studio (version 4.0)
[√] VS Code (version 1.48.2)
[!] Connected device
    ! No devices available

我确实尝试过运行颤振医生 --android-licenses 这给我带来了以下错误

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 flutter


    【解决方案1】:

    我遇到了同样的问题。

    Flutter 2.2.3 • 频道稳定 • https://github.com/flutter/flutter.git

    框架 • 修订版 f4abaa0735(7 天前) • 2021-07-01 12:46:11 -0700

    引擎 • 修订版 241c87ad80

    工具• Dart 2.13.4

    正在运行颤振医生...

    医生总结(要查看所有详细信息,请运行 flutter doctor -v):

    [✓] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-x64, locale es-ES)

    [!] Android 工具链 - 为 Android 设备开发(Android SDK 版本 30.0.2)

    ✗ Android 许可证状态未知。 运行 flutter doctor --android-licenses 以接受 SDK 许可证。 详情请见https://flutter.dev/docs/get-started/install/macos#android-setup

    [✓] Xcode - 为 iOS 和 macOS 开发

    [✓] Chrome - 为网络开发

    [✓] Android Studio(4.2版)

    [✓] VS 代码(版本 1.57.1​​)

    [✓] 已连接设备(1 个可用)

    !医生发现了 1 个类别的问题。

    我已经通过下一个方式实现了解决方案:

    1.- 打开终端窗口。

    2.- 将环境变量 JAVA_HOME 设置为 jdk 8 所在的路径。在我的情况下是: export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home

    3.- 运行命令: flutter doctor --android-licenses

    这三个步骤已经解决了我的问题。

    颤抖的医生

    医生总结(要查看所有详细信息,请运行 flutter doctor -v):

    [✓] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-x64, locale es-ES)

    [✓] Android 工具链 - 为 Android 设备开发(Android SDK 版本 30.0.2)

    [✓] Xcode - 为 iOS 和 macOS 开发

    [✓] Chrome - 为网络开发

    [✓] Android Studio(4.2版)

    [✓] VS 代码(版本 1.57.1​​)

    [✓] 已连接设备(1 个可用)

    • 未发现任何问题!

    【讨论】:

      【解决方案2】:

      保存 JAVA_HOME 环境变量的值,然后删除 JAVA_HOME 环境变量(如果存在)。

      保存你的 jdk 路径的值。从 PATH 中删除你的 jdk。

      做出这些更改后,flutter doctor --android-licenses 应该可以工作了。

      如果适用,请在路径中恢复 JAVA_HOME 环境变量和 jdk。

      如果这不起作用,请卸载 Android Studio 和 XCode,下载最新版本并重新安装。

      如果您无法解决问题,请查看此帖子:https://github.com/flutter/flutter/issues/28230

      【讨论】:

      • 您好,感谢您的回复。原来是java版本的问题。显然 java 11 不支持颤振 atm。降级到 java 8 对我有用
      猜你喜欢
      • 2020-07-07
      • 2019-08-04
      • 2020-11-17
      • 2020-11-24
      • 2019-10-19
      • 2018-09-20
      • 2020-03-25
      • 1970-01-01
      • 2019-12-27
      相关资源
      最近更新 更多