【问题标题】:You have not accepted the license agreements of the following SDK components [duplicate]您尚未接受以下 SDK 组件的许可协议 [重复]
【发布时间】:2017-02-07 04:21:25
【问题描述】:

我下载了最新的 Android SDK 工具版本 24.4.1。我使用命令行安装 SDK。当被问到时,我输入了y

您是否接受许可证“android-sdk-license-c81a61d9”[y/n]:y 安装成功后。

但是当使用Gradle 3.1 构建时,出现如下情况

您尚未接受以下 SDK 组件的许可协议: [Android SDK 平台 23,Android SDK 构建工具 23.0.1]。 在构建项目之前,您需要接受许可协议并使用 Android Studio SDK 管理器完成缺失组件的安装。 或者,要了解如何将许可协议从一个工作站转移到另一个工作站,请访问http://d.android.com/r/studio-ui/export-licenses.html

我检查了 Android 工具所在的 ~/.android/opt/android-sdk。都不包含名为 licenses 的文件夹。

【问题讨论】:

  • 请分享您的 build.gradle 文件
  • 如果在 Windows 上,请确保以管理员身份运行
  • 我已经通过转到 Android Studio-> 工具 -> SDK 管理器和 SDK 工具解决了这个问题,我已经安装了 Google Play 许可库 Android SDK 工具 Android SDK 平台工具,问题已经解决.
  • @SeymurMammadli 你的解决方案也对我有用。
  • 谢谢@SeymurMammadli

标签: android android-studio gradle android-sdk-tools


【解决方案1】:

从命令行接受许可协议的方式已更改。您可以使用位于以下位置的 SDK 管理器:$ANDROID_SDK_ROOT/tools/bin

例如在 linux 上:

cd ~/Library/Android/sdk/tools/bin/

按如下方式运行 sdkmanager:

./sdkmanager --licenses

例如在 Windows 上:

cd /d "%ANDROID_SDK_ROOT%/tools/bin"

按如下方式运行 sdkmanager:

sdkmanager --licenses

并接受您尚未接受(但需要)的许可。

有关更多详细信息,请参阅 Android Studio documentation,尽管当前文档缺少对 --licenses 选项的任何描述。

警告

您的机器上可能有两个 Android SDK。请务必检查~/Library/Android/sdk/usr/local/share/android-sdk!如果不确定,请完全从您的机器上 uninstall Android Studio 并从头开始。

更新:ANDROID_HOME 已弃用,ANDROID_SDK_ROOT 现在是正确的变量

【讨论】:

  • 我接受了所有许可证并收到消息:Accept? (y/N): y All SDK package licenses accepted done 但仍然出现错误。
  • 我们发现我们安装了两个 Android SDK。一个由 Gradle 使用,一个由 Android Studio 管理。可能是你有同样的问题。
  • 接受所有 SDK 包许可证。======] 100% 计算更新...但仍然无法正常工作
  • 你好,@BenjaminGruenbaum,一年后我又来了。
  • 对于 windows,您必须转到 C:\Users\shashank\AppData\Local\Android\Sdk\tools\bin,然后运行 ​​sdkmanager --licenses。并接受不被接受的许可。
【解决方案2】:

您可以通过 2 种方式安装和接受 SDK 和工具的许可:

1。通过命令行打开 Android SDK Manager GUI

使用以下命令通过命令行打开 Android SDK 管理器:

# Android SDK Tools 25.2.3 and lower - Open the Android SDK GUI via the command line
cd ~/Library/Android/sdk/tools && ./android

# 'Android SDK Tools' 25.2.3 and higher - `sdkmanager` is located in android_sdk/tools/bin/.
cd ~/Library/Android/sdk/tools/bin && ./sdkmanager

View more details on the new sdkmanager.

选择并安装所需的工具。 (您的位置可能不同)

2。通过命令行安装并接受 android 许可证:

通过命令行更新软件包,您将看到您需要接受的条款和条件。

- 安装或更新到最新版本

这将在您运行时安装最新的platform-tools

# Android SDK Tools 25.2.3 and lower. Install the latest `platform-tools` for android-25
android update sdk --no-ui --all --filter platform-tools,android-25,extra-android-m2repository

# Android SDK Tools 25.2.3 and higher
sdkmanager --update

- 安装特定版本(25.0.124.0.123.0.1

您也可以像这样安装特定版本:

# Build Tools 23.0.1, 24.0.1, 25.0.1
android update sdk --no-ui --all --filter build-tools-25.0.1,android-25,extra-android-m2repository
android update sdk --no-ui --all --filter build-tools-24.0.1,android-24,extra-android-m2repository
android update sdk --no-ui --all --filter build-tools-23.0.1,android-23,extra-android-m2repository
# Alter the versions as required                      ↑               ↑

# -u --no-ui  : Updates from command-line (does not display the GUI)
# -a --all    : Includes all packages (such as obsolete and non-dependent ones.)
# -t --filter : A filter that limits the update to the specified types of
#               packages in the form of a comma-separated list of
#               [platform, system-image, tool, platform-tool, doc, sample,
#               source]. This also accepts the identifiers returned by
#               'list sdk --extended'.

# List version and description of other available SDKs and tools
android list sdk --extended
sdkmanager --list

【讨论】:

  • ./sdkmanager --update 为我触发了协议。
  • 当我运行 ./sdkmanager --licenses 时,我只是在线程“main”java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema 中遇到异常 :( - 有什么想法吗?
  • @RomanGaufman 你有没有找到解决你的评论的方法,我遇到了同样的问题?
  • 和@RomanGaufman 一样的问题
  • @jamesemanon 我解决了这个问题:1)打开android studio。 2) 转到首选项 -> 外观和行为 -> 系统设置 -> Android SDK。 3) 单击 SDK 工具选项卡。 4) 搜索Android SDK命令行工具并安装。
【解决方案3】:

转到您的$ANDROID_HOME/tools/bin 并触发 cmd

./sdkmanager --licenses

接受此处列出的所有许可。

在此之后,只需转到 sdk 中的 licenses 文件夹并检查它是否包含以下五个文件:

android-sdk-license, android-googletv-license, android-sdk-preview-license, google-gdk-license, mips-android-sysimage-license

重试并再次构建,詹金斯仍然给出“未接受许可”,那么您必须授予您的“sdk”目录及其所有父目录的完全权限。这是命令:

sudo chmod -R 777 /opt/

如果您在 /opt/ 目录中有 sdk。

【讨论】:

  • 如果 windows 路径类似于 - C:\Users\xxx\AppData\Local\Android\Sdk\tools\bin,并且 windows 不需要命令 sdkmanager --licenses``./
  • 感谢 @garg10may 在 powershell 中运行 ./sdkmanager --licenses 非常适合我通过 Android Studio 安装的所有 SDK,我只安装使用 Phonegap CLI - 我没有任何 Android Studio 项目
  • @garg10可能我在 windows10 的工具文件夹下没有 bin 文件夹我该怎么办?
  • 我尝试了sudo chmod -R 775 /opt/,但没有成功,777 一切正常,谢谢!
  • licenses 文件夹丢失,怎么办?
【解决方案4】:

我已经使用命令解决了这个问题:

  1. 转到:C:\Users\ [PC NAME] \AppData\Local\Android\sdk\tools\bin\(如果该文件夹不可用,请先下载 Android SDK,或者 您可以从 android studio 安装过程中安装它。)
  2. Shift+左键单击并按 W,然后 Enter 以在文件夹路径上打开 CMD
  3. 在 cmd 中输入:sdkmanager --licenses
  4. 按回车后,您需要按 y 接受所有许可证

检查许可证

  1. 转到:C:\Users\ [PC NAME] \AppData\Local\Android\sdk\
  2. 检查名为 licenses 的文件夹
android-googletv-license
android-sdk-license
android-sdk-preview-license
google-gdk-license
intel-android-extra-license
mips-android-sysimage-license

作为新的更新文件夹路径(当前 Android Studio)

打开 Android Studio,工具 > Sdk Manager > Android SDK 命令行工具(只需选择加入)

SDKManager 将存储在:

  1. 转到 C:\Users\ [PC NAME] \AppData\Local\Android\Sdk\cmdline-tools\latest\bin
  2. 在 cmd 中输入:sdkmanager --licenses

使用 Android SDK 的文档:https://developer.android.com/studio/command-line/sdkmanager.html

【讨论】:

  • 谢谢!!!遵循您上面建议的安装说明和路径(我使用 Arch Linux 所以 --> /home/[USER]/Android/Sdk/cmdline-tools/latest/bin/sdkmanager)后,使用可用的 sdk-manager 可以让我解决许可证问题! Android SDK这里安装的sdkmanager/opt/android-sdk/tools/bin/sdkmanager好像坏了。
  • 不是windows,而是ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
  • 救世主。谢谢。
  • 非常感谢你救了我
【解决方案5】:

对于不使用 Andoid Studio 的 Windows 用户:

  1. 转到您的 sdkmanager.bat 文件所在的位置。默认情况下,它位于%LOCALAPPDATA% 文件夹内的Android\sdk\tools\bin

  2. 在标题栏中输入 cmd 打开终端窗口

  3. 输入

    sdkmanager.bat --licenses
    
  4. 接受所有带有“y”的许可证

【讨论】:

  • 我在 Program Files 中发现了这个,直到我以管理员身份运行它才继续接受许可证
  • 如果您来自英国,这里需要注意的一点是,拼写时,请确保您以美国方式拼写 licenses,而不是像我们在英国那样拼写 licences - 我犯了一个简单的错误难倒了一分钟,没有看到树木的树木
  • 如果您像我一样在 Unity 中遇到此错误。接受许可后重新启动它。
  • 你拯救了我的一天!
【解决方案6】:

ma​​cOS Sierra 10.12.6 更新 - Android Studio for Mac 2.3.3

通常在以下位置找到 sdkmanager 文件:

/Users/YOUR_MAC_USER/Library/Android/sdk/tools/bin

./sdkmanager --licenses

警告:File /Users/mtro.josevaler**strong text**io/.android/repositories.cfg 无法加载。 不接受 6 个 SDK 包许可证中的 6 个。 查看尚未接受的许可证 (y/N)?

要验证问题是否已解决,只需重复许可证问题所涉及的操作即可。

【讨论】:

  • 我无法在 Android/sdk 目录中找到 'tools' 文件夹 presend... 彻底走丢了,但没有找到。在 Mac OS Mojave 10.14.4 和 Android Studio 3.6.3 上工作。可以帮忙吗?
【解决方案7】:

我通过打开 Android SDK 管理器并为它所抱怨的版本 (API 24) 安装 SDK 构建工具解决了这个问题。

我之前也使用命令行进行了更新,我怀疑 Android SDK 管理器有更完整的解决依赖关系的方法,包括许可证。

【讨论】:

  • 这适用于 GUI SDK Manager,但不幸的是不适用于命令行。
  • 使用@Anil 的答案来解释命令行
  • 我已经通过安装它所抱怨的版本的SDK平台解决了这个问题(例如:api 27)
  • 谢谢。像一条迷人的蟒蛇一样工作。
【解决方案8】:

也许我迟到了,但这帮助我接受了 OSX 的 SDK 许可,

如果您安装了 android SDK 工具,请运行以下命令

~/Library/Android/sdk/tools/bin/sdkmanager --licenses

y接受所有许可

瞧!您已接受 SDK 许可,一切顺利......

【讨论】:

  • bravo...非常好的答案。谢谢。在 mac os catilina 上为我工作
  • 我必须登录才能为你投票。很有帮助。
  • 在 macOS 上你可以使用 yes | ~/Library/Android/sdk/tools/bin/sdkmanager --licenses 自动接受它们,在 Linux 上使用 y | ~/Library/Android/sdk/tools/bin/sdkmanager --licensesyyes 基本相同,只是输出y 接受,直到没有更多的输入请求并且进程停止。
【解决方案9】:

如果您想使用 IDE 接受许可,我还发现打开 Android Studio 并创建一个新的基础项目来触发许可协议很容易。创建项目后,会出现以下许可对话框,我需要同意:

我在以下帖子中完整记录了信息:Accepting the Android SDK License via Android Studio

【讨论】:

    【解决方案10】:

    我遇到了类似的问题,但 ./sdkmanager --licenses 没有用。我关注了这个帖子,“obladors”评论给了我解决方案: https://github.com/oblador/react-native-vector-icons/issues/527

    最终解决我的问题的是: 运行./sdkmanager "build-tools;23.0.1"

    使用您的版本更改 23.0.1

    【讨论】:

      【解决方案11】:

      您可以通过启动 Android Studio 来接受许可协议,然后转到:

      帮助 > 检查更新...

      当您安装更新时,它会要求您接受许可协议。接受许可协议并安装更新,一切就绪。

      【讨论】:

      • 优秀的 Gregory R。我在命令行和其他一些方法中尝试过,这是唯一有效的方法。
      • 你太棒了!完美地为我工作的唯一方法!非常感谢。
      【解决方案12】:

      我在运行 cordova build android 时遇到了这个错误

      我通过触发 ./sdkmanager --licenses 并接受所有许可证解决了这个问题。

      1. 你在android sdk文件夹下有一个sdkmanager.bat,路径为:android/sdk/tools/bin
      2. 触发在 android/sdk/tools/bin 中打开命令提示符
      3. 输入 ./sdkmanager --licenses 并输入
      4. 按 y 查看所有许可,然后按 y 接受所有许可

      【讨论】:

      • 对那些使用 react-native 和类似框架开发的人很有用
      【解决方案13】:

      在 Linux 中

       1. Open a terminal
       2. Write: "cd $ANDROID_HOME/tools/bin (this path can be /home/your-user/Android/Sdk/tools/bin)"
       3. Write: "./sdkmanager --licenses"
       4. To accept All licenses listed, write: "y"
       5. Ready!
      

      如果您正在使用 Ionic Framework 构建应用程序,只需再次编写命令来构建它。

      【讨论】:

        【解决方案14】:

        如果您在 React Native 应用程序中遇到此问题,除了上述步骤之外,请确保您的应用程序的 android 目录(AppName/android)中有指向您的“sdk”的 local.properties 文件目录:

        sdk.dir=/PATH_TO_SDK/
        

        【讨论】:

        • 对我来说这也是安卓应用的问题。除了执行``` yes | sdkmanager --licenses && sdkmanager --update```。您需要正确设置 local.properties,例如:sdk.dir=~/Library/Android/sdk。就我而言,我在 ~/Library/Android/sdk/platforms/android-30 中给出了错误的密码
        【解决方案15】:

        我已经通过以下步骤解决了这个问题:

        1. 使用命令“tools/android update sdk --no-ui”更新 android sdk
        2. 进入jenkins机器上的android sdk文件夹,创建“licenses”文件夹
        3. 创建名为“android-sdk-license”的文件并从开发机器粘贴许可证

        【讨论】:

          猜你喜欢
          • 2018-04-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-03
          • 2017-03-16
          • 1970-01-01
          相关资源
          最近更新 更多