【问题标题】:Flutter.io Android License Status UnknownFlutter.io Android 许可证状态未知
【发布时间】:2018-09-20 09:08:58
【问题描述】:
>[!] 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 Doctor 时遇到了 Android SDK 错误,但我仍然可以在我的设备上构建/运行它。我只是好奇如何解决这个问题。我相信我已经下载了最新版本的 Android SDK,不知道发生了什么,因为我上周没有这个问题。

##新问题 在对 cme​​ts 进行了几个可能的修复之后,它导致了一个新问题。我安装了较新版本的 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

【问题讨论】:

  • 可能对将来的参考有用。我使用的是 Windows 10,我有一个 JDK 11 版本。正如大多数人建议的那样,我将 JDK 降级到版本 8。然后我执行了flutter doctor。它仍然说需要接受许可证。然后我运行flutter doctor --android-licenses 并说yes 获取所有许可协议。最后问题消失了:)。带走的是降级到 JDK 8 将解决问题
  • 这个答案有助于从 android studio gui 中安装 sdk play store 许可证。 stackoverflow.com/a/65899101/3834325
  • 2021 年 7 月更新:在 Flutter 2.2.3 中,最新的 Java 16 仍然存在同样的问题。安装 Java 8 并将 JAVA_HOME 设置为 Java 8 安装目录,解决了 Java 异常错误。 OpenJDK 8 也可以。

标签: java android flutter flutter-android android-licenses


【解决方案1】:

如果您更新了 android SDK,则许可可能已更改。根据你是如何进行更新的,你可能会或可能不会被提示接受更改,或者它只是无法保存你确实以 Flutter 可以理解的方式接受它们的事实。

要解决,请尝试运行

flutter doctor --android-licenses

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

如果您这样做后仍有问题,可能值得在Flutter Github repository 中打开一个新错误,或者对现有问题(如this one)添加评论,因为它可能就是您所看到的。

【讨论】:

  • 它告诉我需要更新版本的 Android SDK。要更新,请运行:C:\Users\abc\AndroidSDK\tools\bin\sdkmanager --update。我该怎么办?
  • @HuzaifaAsif 你试过运行那个命令吗?它应该有望解决这个问题。如果它失败了,那么你可能想查找一个不同的问题或询问一个新的问题。
  • @HuzaifaAsif,我也遇到过几次这个问题,正如 Tommie C 在下面回答的那样,尝试手动安装 java 1.8 并将 $JAVA_HOME 设置为它的 bin 文件夹,然后运行 ​​flutter doctor --android-licenses并接受所有许可证。希望对您有所帮助。
  • @HuzaifaAsif 你是如何重新安装SDK的......我在使用Android Studio 3.6版时遇到了这个错误
  • 请注意!这仅适用于使用 Java 8 的我。
【解决方案2】:

以下是解决我的问题的步骤:

  1. 打开你的终端
  2. 输入flutter doctor --android-licenses
  3. y 接受,此过程可能会发生多次。完成!

【讨论】:

    【解决方案3】:

    这也是我和#16025一样的问题

    对于线程“main”中的异常 java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema 当您之前安装过 Java 9 时,似乎通常会发生此问题。顺便说一句,它与 android-sdk 不兼容,如果仍然存在,请尝试删除 Java 9 JDK。

    一般来说,JAXB API 被认为是 Java EE API,因此 不再包含在 Java SE 9 中的默认类路径中。 Java 9 介绍了模块的概念,默认情况下 java.se 聚合模块在类路径上可用(或者更确切地说,模块 小路)。顾名思义,java.se 聚合模块没有 包括传统上捆绑的 Java EE API 爪哇 6/7/8。幸运的是,这些 Java EE API 在 JDK 6/7/8 仍在 JDK 中,但它们只是不在类路径中 默认。下面提供了额外的 Java EE API 模块

    如果您安装了 Java9/10 的解决方法

    1. 在编辑器中打开 sdkmanager。
    2. 附加 DEFAULT_JVM_OPTS

    替换

    DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME"'
    

    有了这个

    DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
    
    1. 保存文件并退出编辑器,然后再次尝试运行命令。

    对于 Android 许可证状态未知问题,我尝试通过以下步骤解决:

    1. 打开终端
    2. 转到您的 Android SDK 位置 C:\Users%user%\AppData\Local\Android\Sdk\tools\bin 或 ~/Library/Android/sdk/tools/bin

    3. 运行命令: ./sdkmanager --license

    参考文献

    Failed to run sdkmanager --list (Android SDK) with Java 9

    How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java 9

    【讨论】:

    • 我尝试了该解决方案,文件似乎从那时起略有变化,但我仍然进行了必要的修改,但仍然没有运气。我想我只希望以后有更新来解决这个问题,因为我仍然可以运行该应用程序。还是谢谢你!
    【解决方案4】:

    在 GitHub 问题社区上提供的这条线解决了我的问题,这里只是为了以防万一它可以帮助其他人。

    @rem Execute sdkmanager
    
    "%JAVA_EXE%" %DEFAULT_JVM_OPTS% -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee %JAVA_OPTS% %SDKMANAGER_OPTS% -classpath "%CLASSPATH%" com.android.sdklib.tool.sdkmanager.SdkManagerCli %CMD_LINE_ARGS%
    

    【讨论】:

      【解决方案5】:

      错误:

      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
      

      发生是因为当前 SDK 版本与 Java 9 不兼容。

      因此,为了解决这个问题,您可以将您的 java 版本降级到 Java 8,或者使用解决方法,您可以在终端上导出以下选项:

      Linux:

      export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
      

      Windows

      set JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
      

      为了让它坚持下去,您可以在 Linux 上的配置文件中导出 JAVA_OPTS(.zshrc.bashrc 等)或在 Windows 上永久添加为环境。


      然后,你可以输入flutter或者sdkmanager命令:

      颤动

      flutter doctor --android-licenses
      

      sdkmanager

      sdkmanager --licenses
      

      并在需要时输入 Y 以接受许可。

      ps.这不适用于没有 Java EE 模块的 Java 11/11+。因为这个选项是个好主意,请降级您的 Java 版本或等待 Flutter update

      参考:JDK 11: End of the road for Java EE modules

      【讨论】:

      • 另一个选项,如果您同时安装了 java 11 和 8,则将 JAVA_HOME 指向 java8:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
      • 我在 Windows 上的环境变量中将 JAVA_HOME 更改为 JDK 8 并且它起作用了
      • 这不起作用,因为 java.se.ee 在较新版本的 java 中被删除
      • 你不能在 Java 11 中这样做。你必须安装 Java 8。见this answer
      • 我通过安装 Android SDK 命令行工具解决了这个问题,这可以在 SDK 管理器中轻松完成。
      【解决方案6】:

      同样的问题,检查你的java版本 至少必须是 1.8

      【讨论】:

        【解决方案7】:

        从flutter SDK根文件夹打开flutter_console.bat文件并运行命令

        flutter doctor --android-licenses
        

        它将接受新下载的 Android SDK 更新的许可证。每次下载和更新 Android SDK 时都需要运行它。

        【讨论】:

          【解决方案8】:

          这是我的解决方案:

          1. 安装 SDKMan

            $ curl -s "https://get.sdkman.io" | bash

          2. 设置你的 bash_profile

            $ source "$HOME/.sdkman/bin/sdkman-init.sh

            $ source ~/.bash_profile

          3. 找到java sdk,选择要安装的版本

            $ sdk ls java

            $ sdk install java 8.0.192-zulu

          4. 复制您的颤振医生警告消息以更新 sdkmanager

            $ /Users/YourUserName/Library/Android/sdk/tools/bin/sdkmanager --update

          5. 1~4后重做

            $ flutter doctor --android-licenses

          【讨论】:

          • 停下! java 8.0.192-zulu 不可用。可能原因: * 8.0.192-zulu 是无效版本 * java 二进制文件与 Darwin 不兼容 * java 尚未发布
          【解决方案9】:
          1. 打开 Android Studio。
          2. 转到文件->设置。
          3. 搜索AndroidSDK
          4. 将您的 API 级别更新到最新版本。
          5. 然后重新加载 Android Studio。

          【讨论】:

            【解决方案10】:

            试试downgrading your java version,当你的系统java版本与android的不兼容时会发生这种情况。一旦您更改了 java 版本,只需运行 flutter doctor 它就会自动接受许可证。

            【讨论】:

              【解决方案11】:

              我发现这个solution 必须使用 JDK 8(你需要一个帐户才能下载!) - 使用 Android Studio 附带的嵌入式 OpenJDK:

              将此添加到您的 ~/.profile 或类似名称中:

              # Use the JDK embedded with Android Studio for command-line builds
              export JAVA_HOME='/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home'
              

              通过gradlew 和任何其他行为良好的脚本构建的命令行将使用 Android Studio 2.2+ 随附的 SDK 版本。

              *我的 Mac 仍在使用默认的 Java 7。

              【讨论】:

                【解决方案12】:

                MacOS 10.15: Android Studio 3.5.1:

                对我有用的解决方案是使用Java Environment tooljenv(通过homebrew 安装)。这个工具在java版本之间切换时会改变$JAVA_HOME

                就我而言,我安装了多个 Java 版本,并且当前使用的全局版本是默认版本。我还发现使用此工具时有必要在我的.bash_profile 中注释掉 $JAVA_HOME 环境变量。

                在终端中,我输入 jenv global 1.8 以运行 java 1.8 而不是更高版本(我安装了多个版本)。

                之后:

                flutter doctor --android-licenses

                sdkmanager --licenses

                两者都可以正常工作。

                注意:如果您有,您可能需要退出并重新打开终端 shell 重新定义 $JAVA_HOME 环境变量。

                【讨论】:

                  【解决方案13】:

                  对于仍然面临问题的人
                  正如 Tommie C、Aba 和其他少数人在下面回答的那样,但我发现它可能不够清楚。
                  尝试在 windows/linux 上手动安装 java 1.8:[https://www3.ntu.edu.sg/home/ehchua/programming/howto/JDK_Howto.html]
                  并设置 $JAVA_HOME 变量(jdk 路径)。
                  在 Windows 上设置 jdk 路径($JAVA_HOME):[How to set java_home on Windows 7?.
                  在 Linux 上:[https://askubuntu.com/questions/175514/how-to-set-java-home-for-java].
                  然后运行flutter doctor --android-licenses 并接受所有许可证。希望对您有所帮助。

                  【讨论】:

                    【解决方案14】:

                    我将我的 Java 版本降级到 1.8 并解决,这里是下载链接JDK8

                    安装JDK8后运行以下命令

                       flutter doctor --android-licenses
                    

                    【讨论】:

                      【解决方案15】:

                      警告:如果您对 JAVA_HOME 环境变量及其方向有疑问,此答案很有用。如果您没有此问题,则不应尝试此解决方案。

                      如果您遇到此错误并且您尝试使用 flutter doctor --android-licenses 或 sdkmanager --licenses 并且您的 JAVA_HOME 环境变量有问题,那么您必须阅读此内容。

                      我有一个 MacOS Catalina ant,我可以通过以下步骤成功解决此问题:

                      1. 打开你的终端
                      2. 类型:open -e .bash_profile(你应该会看到差不多两个环境变量:flutter和JAVA_HOME)
                      3. 如果您愿意,请将 JAVA_HOME 环境变量保存在 textEdit 文件中并删除 JAVA_HOME 环境变量。保存 bash_profile。
                      4. 再次转到终端并运行 source $HOME/.bash_profile
                      5. 再试一次flutter doctor,你应该不会再看到同样的错误了。

                      如果您有任何疑问,请告诉我。

                      【讨论】:

                        【解决方案16】:

                        我找到了这个解决方案。我下载了JDK 8。然后我将JAVA_HOME的下载jdk文件路径名添加到环境变量中的用户变量中。

                        【讨论】:

                          【解决方案17】:

                          如果您安装了 android studio,那么正确的解决方案是

                          1. 打开 SDK 管理器
                          2. 在 SDK 工具下取消选中底部隐藏过时的包
                          3. 那么您应该会看到一个名为Android SDK Tools (Obsolete) 的选项

                          1. 勾选并申请,让工作室下载包
                          2. 一旦完成运行命令flutter doctor,它现在应该提示你运行flutter doctor --android-licenses 运行 license 命令后,点击 y 接受所有许可证,它应该可以解决问题

                          【讨论】:

                          • 这与最佳答案是否不同。
                          • 这正是截至 2020 年 3 月 18 日的 Mac 官方文档 - 请参阅 flutter.dev/docs/get-started/install/… 。这是known issue
                          • 感谢@yair 不知道的链接
                          • 这对我来说适用于一个新的构建。 ENV 变量和/或过时软件包的其他选项不起作用。我正在使用带有 JAVA 11 的 Neo4j,所以我想使用这个版本。不知道为什么开发人员让这变得如此困难。浪费了一个小时,甚至还没有安装它。
                          【解决方案18】:

                          我写这篇文章是因为安装 Flutter 时遇到的挫折……大多数问题都是由简单的配置问题引起的。请按照以下步骤解决您的问题。

                          第 1 步:ANDROID 许可证 --android-licenses,将解决大多数情况

                          既然您在这里,您就遇到了 Android 工具链的“Android 许可证状态未知”问题,正如许多人建议的那样 tryflutter doctor --android-licenses。如果你对所有配置都很好。它应该要求是,然后按 y 和瞧。但如果它显示一个

                          Android sdkmanager 工具未找到(C\Users\__\local\Android\sdk\tools\bin\sdkmanager)。进入第二步

                          第 2 步:从 Android Studio 安装 SDK 管理器

                          打开您的 Android Studio ,File-&gt; settings-&gt;System settings(left tab) -&gt;Android SDK, 转到该页面中的 SDK Tool section,取消勾选隐藏过时的包,选择 Android SDL tools(obsolete) 并按应用。

                          它将安装 SDK,您通过检查此路径是否存在来确认它(C\Users\__\local\Android\sdk\tools\bin\sdkmanager)

                          第 3 步:重复第 1 步

                          安装后在新的命令行中重复第 1 步检查它是否正常工作,否则转到第 4 步

                          第 4 步:sdkmanager --update

                          它会要求您更新 sdk,只需运行终端 C\Users\__\local\Android\sdk\tools\bin\sdkmanager --update 中给出的命令即可。如果它正在运行,那么它很酷。让它完成并重复步骤 1,否则如果它抛出一些异常,如 java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema 等, 这意味着您的 java 未安装或版本不正确。进入下一步

                          第 5 步: JAVA 8.1 和 JAVA_HOME 路径。

                          安装 JAVA 8.1 并设置 JAVA_HOME 路径。 确保它是8.1版本(注册免费帐户并从oracle下载8.1版本,记住以上11+不适用于flutter

                          注意:作者 yaniv maymon: 如果您的计算机上已经安装了 Java,并且 sdkmanager --update 仍然无法正常工作。转到环境变量并更新 jdk 文件夹的“JAVA_HOME”路径。然后退出命令提示符,再次打开并运行更新命令——

                          第 6 步:最后一步

                          正确安装和设置路径后,在新终端中运行C\Users\__\local\Android\sdk\tools\bin\sdkmanager --update 命令即可运行

                          第 7 步:重新运行颤振医生, 你可以看到它说运行命令 flutter doctor --android-licenses 。所以在终端中运行 flutter doctor --android-licenses 并在询问时按 y

                          【讨论】:

                          • 如果您的计算机上已经安装了 Java 并且 sdkmanager --update 仍然无法正常工作。转到环境变量并更新 jdk 文件夹的“JAVA_HOME”路径。然后退出命令提示符,再次打开并运行更新命令
                          【解决方案19】:

                          我遇到了同样的问题,就像上面提到的我试过这些。

                          1. 安装了 JDK 1.8 并将我的 JAVA_HOME 环境设置为 1.8 - 这不起作用
                          2. 我的 Android 工作室没有显示任何“Android SDK 工具(已过时)”,但有一个“Android SDK 工具”

                          这对我有用:

                          1. 从 SDK 管理器中删除“Android SDK 工具”
                          2. 首先取消选择“Hide Obsolete Packages”,然后选择“Android SDK Tools (Obsolete)”重新安装,然后安装。
                          3. 运行flutter doctor --android-licenses 并选择y 作为提示
                          4. 运行flutter doctor,一切都会好起来的!!!!

                          【讨论】:

                            【解决方案20】:

                            这是我为解决我的问题所做的。请注意,您不必卸载旧版本的 Android Studio/SDK。在您安装最新版本时,Android Studio 会处理这些问题。

                            1. 下载并安装最新版Android Studio
                            2. 按照此tutorial 中的说明进行操作
                            3. 安装完成后,运行 flutter doctor 并检查,您的问题应该已经解决。如果问题得到解决,则无需运行 flutter doctor --android-licenses 命令。

                            【讨论】:

                              【解决方案21】:

                              对于那些使用 Linux 并在flutter doctor --android-licenses 期间不断出错的人。

                              我在尝试接受许可时不断收到无法创建设置警告,我通过指定 SDK 位置解决了这个问题:

                              sdkmanager --sdk_root=/home/adel/bin/android-sdk --licenses
                              

                              Sdkmanager 然后打印:接受所有 SDK 包许可证。

                              但是 Flutter 一直给出 android license status unknown 错误。并且尝试调用 flutter doctor --android-licenses 会给我带来同样的无法创建设置错误。

                              为了解决这个问题,我编辑了位于 ${your android tools location}/tools/bin/ 中的 sdkmanager 脚本并将最后一行更改为:

                              exec "$JAVACMD" "$@"
                              

                              收件人:

                              exec "$JAVACMD" "$@" --sdk_root=/home/adel/bin/android-sdk
                              

                              这将使 Flutter 在传递所需的 sdk_root 参数时调用 sdkmanager,最终调用 flutter doctor --android-licenses 解决了该问题。

                              我不必使用 Java 8。

                              【讨论】:

                              • 感谢您的回复,这解决了我的问题。我不明白为什么有人反对它。再次感谢您。
                              • 互联网上唯一对我有用的解决方案!谢谢哥们! :)
                              【解决方案22】:

                              参考--https://robbinespu.gitlab.io/blog/2020/03/03/flutter-issue-fixed-android-license-status-unknown-on-windows/

                              所以这里的解决方案,打开你的 SDK 管理器然后取消选中 Hide Obsolete Packages

                              现在您会看到 Android SDK Tools (Obsolete) 26.1.1 出现。勾选那个包并点击apply button然后确定按钮。它将下载sdk。 然后restartAndroid工作室

                              很好,现在如果你运行flutter doctor,你应该得到如下的肯定结果

                              PS D:\Workplace\flutter_projects> flutter doctor
                              Doctor summary (to see all details, run flutter doctor -v):
                              [√] Flutter (Channel stable, v1.12.13+hotfix.8, on Microsoft Windows [Version 10.0.18363.657], locale en-MY)
                              
                              [√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
                              [√] Android Studio (version 3.6)
                              [√] VS Code (version 1.42.1)
                              [√] Connected device (1 available)
                              
                              • No issues found!
                              
                              PS D:\Workplace\flutter_projects> flutter doctor --android-licenses -v
                              All SDK package licenses accepted.======] 100% Computing updates...
                              

                              运行 flutter doctor --android-licenses 并在被询问时输入 Y

                              如果需要,我们可以在这里手动下载软件包https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip(适用于 Windows 用户)。希望本教程对寻找解决方案的人有所帮助

                              【讨论】:

                              • 这对我很有帮助:)
                              【解决方案23】:

                              我遇到了问题。 tools 文件夹也从 Android SDK 文件夹中丢失。我相信tools 文件夹只有在安装Android SDL tools(obsolete 后才会出现)。我无法使用此选项。

                              解决方案: 我将Java 从版本 8 升级到版本 12,并且能够安装这些工具。在发出命令flutter doctor -v 时,您可能仍会收到错误Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses。运行命令flutter doctor --android-licenses,每次出现这个问题Accept? (y/N):时点击yes就会审核licensesAccept? (y/N):

                              希望它会帮助某人。

                              【讨论】:

                                【解决方案24】:

                                如果你使用homebrew cask,你可以这样做

                                brew cask install android-sdk
                                mkdir ~/Library/Android/sdk/tools
                                ln -s /usr/local/bin/ ~/Library/Android/sdk/tools/bin
                                flutter doctor --android-licenses
                                

                                【讨论】:

                                  【解决方案25】:

                                  对于 Windows 用户,短期解决方案是降级到 JDK8。希望 Flutter 能尽快解决 Android SDK 与 >JDK8 一起工作的问题。

                                  【讨论】:

                                    【解决方案26】:

                                    我的环境:Windows 10 64bit,OpenJDK 14.0.2

                                    初始错误如上所述。

                                    错误解决后

                                    1. 将“C:\openjdk-14.0.2_windows-x64_bin\jdk-14.0.2”替换为“*C:\程序文件\Android\Android Studio\jre*" 在环境变量 PATH & JAVA_HOME
                                    2. 运行 flutter doctor --android-licenses 并为提示选择 y

                                    【讨论】:

                                      【解决方案27】:

                                      在对我的 Ubuntu 20.04 进行大量分析后,我找到了解决方案

                                      对我来说,错误是 /home/rk/Android/Sdk/tools/bin/sdkmanager 缺少 写入 权限。

                                      1. chmod +w home/rk/Android/Sdk/tools/bin/sdkmanager

                                      然后运行以下命令。

                                      1. flutter doctor --android-licenses

                                      它会自动处理许可证。

                                      【讨论】:

                                        【解决方案28】:

                                        按照这些简单的步骤。

                                        1. 转到工具,然后是 SDK 管理器,然后单击 android SDK。
                                        2. 点击 SDK 更新站点选项卡。
                                        3. 选中说明 https://..sources 要使用 https:// 获取的复选框。
                                        4. 点击应用即可。
                                        5. 现在重启android studio。
                                        6. 转到 SDK 工具并选中说明隐藏过时软件包的复选框。
                                        7. 等待大约一分钟左右,包就会出现。
                                        8. 然后选择一个名为“android SDK tools (obsolete)”的包,然后按确定。
                                        9. 继续安装包。
                                        10. 安装后重启android studio,同时重启cmd,然后运行flutter doctor。
                                        11. 这需要几分钟,它应该可以工作

                                        【讨论】:

                                          【解决方案29】:

                                          只需在 android studio 中安装下面的 sdk 命令行工具(最新)。

                                          然后运行: 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
                                          

                                          ...然后,您将获得一大堆阅读许可,一边喝着您最喜欢的饮料。

                                          【讨论】:

                                          • 这也被我错过了 :) 非常感谢
                                          • 在运行flutter doctor --android-licenses之前我必须这样做
                                          • 这是最有帮助的答案,至少对于我的 ubuntu 机器而言。
                                          • 效果很好!谢谢
                                          • 几天来一直在尝试我在网上找到的所有东西,而这里的这个小帮助正是我所缺少的。谢谢你。不知道为什么这不是公认的答案。
                                          【解决方案30】:

                                          在我的情况下,问题丢失了Android SDK Command-line tools

                                          【讨论】:

                                            猜你喜欢
                                            • 2020-11-24
                                            • 2019-10-19
                                            • 2019-08-04
                                            • 2020-11-17
                                            • 2020-12-24
                                            • 2020-03-25
                                            • 2020-07-07
                                            • 1970-01-01
                                            • 2019-12-27
                                            相关资源
                                            最近更新 更多