Flutter Doctor,Android 许可证状态未知
Posted
技术标签:
【中文标题】Flutter Doctor,Android 许可证状态未知【英文标题】:Flutter Doctor, Android licenses status unknown 【发布时间】: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
我在这里错过了什么?
【问题讨论】:
【参考方案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 对我有用以上是关于Flutter Doctor,Android 许可证状态未知的主要内容,如果未能解决你的问题,请参考以下文章
不接受某些 Android 许可证。要解决此问题,请运行:flutter doctor --android-licenses
运行 flutter doctor --android-licenses 时发生异常
为啥 Flutter Doctor 不能作为我的计算机工作?
Flutterflutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘(代码片段