繁体   English   中英

您尚未接受以下 SDK 组件的许可协议 [重复]

[英]You have not accepted the license agreements of the following SDK components [duplicate]

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

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

但是在使用 Gradle 3.1 构建时,出现如下

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

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

从命令行接受许可协议的方式已经改变。 您可以使用位于以下位置的 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 文档,尽管当前文档缺少有关--licenses选项的任何说明。

警告

您的机器上可能有两个 Android SDK。 确保同时检查~/Library/Android/sdk/usr/local/share/android-sdk 如果不确定,请从您的机器上完全卸载Android Studio,然后从头开始。

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

您可以通过两种方式安装并接受 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

查看有关新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.1 , 24.0.1 , 23.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

转到您的$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

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

sudo chmod -R 777 /opt/

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

我已经使用以下命令解决了问题:

  1. 转到:C:\\Users\\[PC NAME]\\AppData\\Local\\Android\\sdk\\tools\\bin\\(如果文件夹不可用则先下载android SDK,也可以从android studio安装过程中安装) .)
  2. Shift+左键单击并按W,然后回车在文件夹路径上打开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

使用以下命令在 CORDOVA 上进行了测试:

科尔多瓦构建安卓

--更新新文件夹路径--

打开 Android Studio,Tools > Sdk Manager > Android SDK Command-Line Tools (Just Opt-in)

在此处输入图片说明

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

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

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

  2. 通过在标题栏中键入 cmd 打开一个终端窗口

  3. 类型

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

macOS Sierra 10.12.6 更新 - 适用于 Mac 2.3.3 的 Android Studio

通常在以下位置找到 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 管理器并为其抱怨的版本(API 24)安装 SDK 构建工具解决了这个问题。

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

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

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

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

y接受所有许可证

瞧! 您已接受 SDK 许可并且一切顺利。

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

在此处输入图片说明

我在以下帖子中完整记录了信息: 通过 Android Studio 接受 Android SDK 许可

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

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

用你的版本更改 23.0.1

当我运行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 接受所有许可证

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

帮助 > 检查更新...

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

在 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 构建应用程序,只需再次编写命令来构建它。

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

sdk.dir=/PATH_TO_SDK/

我已通过以下步骤解决了该问题:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM