Error: Unknown argument --licenses flutter doctor --android-licenses

Error: Unknown argument --licenses flutter doctor --android-licenses

我尝试用vscode安装androidSDK来写flutter。但是每当启动 android 模拟器时,它都会要求许可证。但是每当我使用命令 flutter doctor android 许可证时。它给了我这个错误。我正在使用,

ANDROID SDK 平台工具 - 29.0.6
ANDROIDSDK 构建工具 - 29.0.3
ANDROID 7 (API:24)

flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 1.22.1, on Linux, locale en_US.utf8)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/linux#android-setup for more details.
[!] Android Studio (not installed)
[✓] VS Code (version 1.50.0)
[!] Connected device
    ! No devices available

! Doctor found issues in 3 categories.

我尝试了很多 Whosebug 解决方案,但没有成功。可能过时了。

 flutter doctor --android-licenses
Error: Unknown argument --licenses
Usage: 
  sdkmanager [--uninstall] [<common args>] \
    [--package_file <package-file>] [<packages>...]
  sdkmanager --update [<common args>]
  sdkmanager --list [<common args>]

In its first form, installs, or uninstalls, or updates packages.
    <package> is a sdk-style path (e.g. "build-tools;23.0.0" or 
             "platforms;android-23").
    <package-file> is a text file where each line is a sdk-style path
                   of a package to install or uninstall.
    Multiple --package_file arguments may be specified in combination
     with explicit paths.
In its second form (with --update), currently installed packages are
    updated to the latest version.
In its third form, all installed and available packages are printed out.

Common Arguments:
    --sdk_root=<sdkRootPath>: Use the specified SDK root instead of the SDK containing this tool
    --channel=<channelId>: Include packages in channels up to <channelId>.
                           Common channels are:
                           0 (Stable), 1 (Beta), 2 (Dev), and 3 (Canary).

    --include_obsolete: With --list, show obsolete packages in the
                        package listing. With --update, update obsolete                                                                                                                                          
                        packages as well as non-obsolete.                                                                                                                                                        
    --no_https: Force all connections to use http rather than https.                                                                                                                                             
    --proxy=<http | socks>: Connect via a proxy of the given type.                                                                                                                                               
    --proxy_host=<IP or DNS address>: IP or DNS address of the proxy to use.                                                                                                                                     
    --proxy_port=<port #>: Proxy port to connect to.                                                                                                                                                             
                                                                                                                                                                                                                 
* If the env var REPO_OS_OVERRIDE is set to "windows",                                                                                                                                                           
  "macosx", or "linux", packages will be downloaded for that OS.   

那么如何激活 android SDK 的许可证?

安装Android SDK 6.0(Marshmallow)

我通过安装 android studio 并卸载所有 android 文件并从 android studio 重新安装解决了这个问题。然后自动在文件夹中创建许可证。现在每当我 运行 来自 vscode 的模拟器时..它工作顺利。

我遇到这个问题是因为我直接从 android sdk 安装了所有 android 文件。我通过 sudo snap android-sdk 安装了 android sdk。所以它给我带来了问题。 要了解更多详细信息,您可以阅读这篇文章 - Flutter, Android SDK and VScode setup on Linux Complete Guideline

如果您的 <sdk>/cmdline-tools\latest 目录中没有命令行工具,就会出现此问题。您可以从 here 下载命令行工具并将其放在目录 <sdk>/cmdline-tools\latest

中,而不是安装 Android Studio

我在 运行 flutter doctor --android-licenses 时遇到了同样的问题。我在没有使用 Android Studio 的情况下安装了 android SDK。

以下是我为让它发挥作用所采取的步骤

  1. 我转到 android studio download page 并向下滚动并下载了我的 OS (windows)
  2. 的命令行工具
  3. 然后我解压到android-sdk目录
  4. 我在 cmdline-tools 中创建了一个名为 latest 的新文件夹,并将 cmdline-tools 的内容移到了其中。

在此之后我尝试 运行 flutter doctor --android-licenses 然后它没有错误地工作并且 运行 它在我的设备上没问题。