Android/Sdk 缺少 Tools 文件夹,意味着没有 sdkmanager,意味着“Android 许可证状态未知”错误

Posted

技术标签:

【中文标题】Android/Sdk 缺少 Tools 文件夹,意味着没有 sdkmanager,意味着“Android 许可证状态未知”错误【英文标题】:Android/Sdk is missing a Tools folder, meaing no sdkmanager, meaning "Android license status unknown" error 【发布时间】:2020-06-13 04:25:42 【问题描述】:

我想开始学习 Flutter,所以我关注了guide,但我已经卡在了第一步。除了创建一个全新的应用程序之外,我什么都没做,但是当我在 android Studio 中点击“运行”时,我收到以下错误:

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

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

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

其中不包含工具、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 可用空间,所以空间限制并没有阻止它安装。我也没有任何互联网问题。

【问题讨论】:

【参考方案1】:

我在 MacOS 上也面临同样的问题。

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

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

编辑

找到了解决办法。 显然,最新的 Android Studion 版本中不存在“tools/”文件夹。

您仍然可以使用 Android Studio 中的 SDK 管理器安装 SDK 工具。

打开 SDK 管理器并转到“SDK 工具”选项卡。在底部取消选中“隐藏过时的包”复选框。

之后会出现安装“Android SDK Tools (obsolete)”包的选项。

安装它们并再次运行flutter doctor。 接受许可后即可使用

【讨论】:

这很奇怪..我刚刚下载了 Windows 版本,它也没有 /tools。最新版本可能没有 /tools 文件夹吗?这没有任何意义。 另外,你的 bin 文件夹在哪里? 哪个 bin 文件夹? cmdline-tools 具有以下结构 'Android/sdk/cmdline-tools/latest/bin' 在那里我可以看到 sdkmanager。 哦,好吧。你是从哪里安装 cmdline-tools 的? 好的,我想我找到了解决方案,我们可以安装 SDK 工具。打开 SDK 管理器并转到“SDK 工具”选项卡。在底部取消选中“隐藏过时的包”复选框。之后会出现安装“Android SDK Tools (obsolete)”包的选项。安装它们并再次运行“颤振医生”。接受许可后它可以工作。【参考方案2】:

在 Ubuntu 20.04 LTS 上,这些是我解决此问题的步骤

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

    通过 snap 安装颤振:

sudo snap install flutter --classic
sudo snap install flutter-gallery
flutter channel dev
flutter upgrade
flutter config --enable-linux-desktop

    按照下图安装命令行工具并在 Android Studio 中接受它们的许可(见下图)

    使用颤振医生接受许可证

flutter doctor --android-licenses 6 个 SDK 包许可证中的 5 个不
公认。 100% 计算更新...
审查许可证
未被接受(是/否)?是的

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

3.1 在Android Studio中选择命令行工具(最新)如图,按OK

3.2 接受许可协议

3.3 确认更改

3.4 点击完成

【讨论】:

【参考方案3】:

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

但您可以简单地将 /tools/bin 目录链接到 /cmdline-tools/latest/bin 目录:

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

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

重新运行 flutter doctor --android-licenses 你应该是金子。

块引用

【讨论】:

【参考方案4】:

在终端或 cmd 中运行 flutter doctor,然后键入 y 以接受许可证。

【讨论】:

我试过了。我将结果添加到我的问题中。我的整个 Android 包似乎不正确,因为我没有工具或 bin 或 sdkmanager 文件夹或文件。

以上是关于Android/Sdk 缺少 Tools 文件夹,意味着没有 sdkmanager,意味着“Android 许可证状态未知”错误的主要内容,如果未能解决你的问题,请参考以下文章

android sdk安装时没有android SDK tools和android SDK platform-tools.

如何使用android sdk tools

android sdk环境变量的配置

License for package Android SDK Build-Tools 28.0.3 not accepted.

构建失败,缺少关键属性(Android SDK)

安装android sdk缺少处理器文件,dl.google.com拒绝 完成的包加载. dl.google.com 挂代理怎么还下载不了