Flutter.io 安卓许可证状态 未知

>[!] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    >>• Android SDK a ..\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
    X Android license status unknown.

当我运行Flutter医生时,我遇到了Android SDK错误,尽管我仍然可以在我的设备上构建/运行它。我只是好奇如何解决此问题。我相信我已经下载了最新版本的Android SDK,不确定发生了什么,因为我上周没有遇到这个问题。

##New问题 在评论中遵循几个可能的修复程序后,它导致了一个新问题。我安装了较新版本的Android sdk P,8和7以及新的jdk10。显然仍然没有更新足够。

C:\Flutter\flutter>flutter doctor --android-licenses
A newer version of the Android SDK is required. To update, run:
C:\Users\tdmil\AppData\Local\Android\sdk\tools\bin\sdkmanager --update

C:\Flutter\flutter>C:\users\username\appdata\local\android\sdk\tools\bin\sdkmanager.bat --update

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:582)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
        ... 5 more

答案 1

只需在Android工作室中安装下面的sdk命令行工具(最新)。即可。enter image description here

然后运行:flutter doctor --android-licenses

之后,您应该获得:

coolcoders@myhost ~ % flutter doctor --android-licenses
5 of 7 SDK package licenses not accepted. 100% Computing updates...             
Review licenses that have not been accepted (y/N)? y

...然后,您将获得一大堆许可证,供您在啜饮自己喜欢的饮料时阅读。


答案 2

如果您更新了 Android SDK,则许可证可能已更改。根据您进行更新的方式,您可能会或可能不会被提示接受更改,或者它可能只是没有保存您确实以flutter可以理解的方式接受它们的事实。

要解决此问题,请尝试运行

flutter doctor --android-licenses

这应该会提示您接受许可证(它可能会首先询问您,以防只是键入并按Enter键 - 尽管它应该告诉您)。y

如果您在执行此操作后仍然遇到问题,则可能值得在Flutter Github存储库中打开一个新错误,或者对像这样的现有问题添加注释,因为它可能是您所看到的。


推荐