Android/Sdk 缺少 Tools 文件夹,表示没有 sdkmanager,表示 "Android license status unknown" 错误

Android/Sdk is missing a Tools folder, meaing no sdkmanager, meaning "Android license status unknown" error

我想开始学习 Flutter,所以我正在关注 guide,但我已经卡在了第一步。除了创建一个全新的应用程序,我什么都没做,但是当我在 Android Studio 中点击 "Run" 时,出现以下错误:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
> Failed to install the following Android SDK packages as some licences have not been accepted.
     build-tools;28.0.3 Android SDK Build-Tools 28.0.3
     platforms;android-28 Android SDK Platform 28
  To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
  Alternatively, to transfer the license agreements from one workstation to another, see http://d.android.com/r/studio-ui/export-licenses.html

  Using Android SDK: /home/greg/Android/Sdk

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
Finished with error: Gradle task assembleDebug failed with exit code 1

看看有类似问题的人,最常见的解决方案似乎是 运行ning yes | ~/Android/tools/bin/sdkmanager --licenses,但我没有名为 sdkmanager 的文件夹或文件。我的整个文档树实际上是不同的,尽管我刚刚完成了 Ubuntu 的官方 Android Studio 下载过程。对于我的文档结构,我有

~/Android/Sdk/$ ls
build-tools  patcher    platform-tools  sources
emulator     platforms  skins  

none 其中包含工具、bin 或 sdkmanager。

我还在 Android Studio 中打开了 SDK Manager,然后转到 SDK Tools 选项卡并更新了 Build-Tools 并接受了许可,然后退出并重新打开了 Android Studio,但是我得到同样的错误。我找不到与我具有相同文件结构的人。有人知道我能做什么吗?

编辑

我开始认为真正的问题是我的 Android 文件夹的内容。当我 运行 flutter doctor 收到此消息时

[✓] Flutter (Channel stable, v1.12.13+hotfix.8, on Linux, locale en_US.UTF-8)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    ✗ 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/setup/#android-setup for detailed instructions.
[!] Android Studio (version 3.6)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] IntelliJ IDEA Community Edition (version 2019.3)
[!] Connected device
    ! No devices available

! Doctor found issues in 3 categories.

但是当我 运行 flutter doctor --android-licences 时,我收到以下错误消息:

Android sdkmanager tool not found (/home/greg/Android/Sdk/tools/bin/sdkmanager).
Try re-installing or updating your Android SDK,
visit https://flutter.dev/setup/#android-setup for detailed instructions.

我实际上没有工具文件夹、bin 或 sdkmanager。我确实尝试卸载并重新安装 Android Studio,但没有任何改变。我是不是下载了不正确的包之类的?我是直接从https://developer.android.com/studio/#downloads下载的,怎么可能内容好像不对呢?我有 100GB 的空闲空间,所以 space 约束并没有阻止它的安装。我也没有任何互联网问题。

运行 flutter doctor 在终端或 cmd 中输入 y 接受许可。

我在 MacOS 上也遇到了同样的问题。

我今天刚下载了 Android Studio (android-studio-ide-192.6241897-mac),我也找不到 /tools 文件夹。

我可以在 'Android/' 目录中看到 'sdkmanager' 插入 ide 的唯一方法是安装 cmdline-tools 并在 bin 文件夹中找到它。但这并不能解决问题。

编辑

找到解决方案。 显然,'tools/' 文件夹在最新的 Android Studioon 版本中不存在。

您仍然可以在 Android 工作室中使用 SDK 管理器安装 SDK 工具。

打开 SDK 管理器并转到 'SDK Tools' 选项卡。在底部取消选中 'Hide Obsolete packages' 复选框。

完成后会出现安装 'Android SDK Tools (obsolete)' 包的选项。

安装它们并再次 运行 flutter doctor。 并且在接受许可证后可以正常工作

在 Ubuntu 20.04 LTS 这些是我解决这个问题的步骤

  1. 更新到最新版本的 Android Studio(当前为 4.0.1)。我正在使用 JetBrains toolbox app 在 Ubuntu 上安装 Android studio。

  2. 通过 snap 安装 flutter:

sudo snap install flutter --classic
sudo snap install flutter-gallery
flutter channel dev
flutter upgrade
flutter config --enable-linux-desktop
  1. 按照下图安装命令行工具并在 Android Studio 中接受它们的许可 (见下图)

  2. 使用 flutter doctor 接受许可

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

第三步:按照图片安装命令行工具:

  • 3.1 Select Android Studio 中的命令行工具(最新)如图所示,按 OK:

  • 3.2 接受许可协议

  • 3.3 确认更改

  • 3.4 点击完成

较新版本的 Android Studio 没有 /tools 目录。应用程序现在位于“cmdline-tools”

但是您可以简单地 link /tools/bin 目录到 /cmdline-tools/latest/bin 目录:

转到您的 sdk 根目录并创建一个名为“tools”的目录 cd 进入“工具”

ln -s /path/to/sdk/cmdline-tools/latest/bin/ bin

重新运行 flutter doctor --android-licenses 你应该是 golden.

Blockquote