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

时间:2020-02-29 05:42:16

标签: android android-studio gradle flutter android-sdk-manager

我想开始学习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工具”选项卡,更新了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的可用空间,因此空间有限并没有阻止其安装。我也没有任何互联网问题。

4 个答案:

答案 0 :(得分:5)

在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工具(已淘汰)”软件包的选项。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

  2. 通过捕捉安装颤振:

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:按照图片安装命令行工具:

  • 3.1如图所示,在Android Studio中选择命令行工具(最新),然后按确定

Android SDK Command-line Tools

  • 3.2接受许可协议 License Agreement

  • 3.3确认更改 Confirm the Change

  • 3.4单击“完成” Click Finish

答案 3 :(得分:0)

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

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

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

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

重新运行 flutter doctor --android-licenses,你应该是金色的。

<块引用>

块引用