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

cld4siwp  于 2023-05-07  发布在  Android
关注(0)|答案(5)|浏览(710)

我想开始学习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管理器,并转到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下载的,怎么可能内容看起来不正确呢?我有100 GB的可用空间,所以空间限制并没有阻止它被安装。我也没有任何网络问题。

uplii1fm

uplii1fm1#

我在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。它在接受许可证后工作

8i9zcol2

8i9zcol22#

在Ubuntu 20.04 LTS上,我采取了以下步骤来解决这个问题

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

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

1.按照下图在Android Studio中安装命令行工具并接受许可证**(见下图)**
1.接受许可证使用Flutter医生

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选择Android Studio中的命令行工具(最新版),如图所示,按【确定】:

  • 3.2接受许可协议

  • 3.3确认变更

  • 3.4单击完成

h7wcgrx3

h7wcgrx33#

较新版本的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,你应该是金色的。
Blockquote

guykilcj

guykilcj4#

谢谢上面的解决方案对我的帮助。enter image description here

raogr8fs

raogr8fs5#

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

相关问题