[英]you have not accepted the license agreements of the following sdk components [android sdk build-tools 23.0.1]
[英]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 和工具的许可:
使用以下命令通过命令行打开 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
选择并安装所需的工具。 (您的位置可能有所不同)
通过命令行更新软件包,您将看到需要接受的条款和条件。
这将在您运行时安装最新的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。
我已经使用以下命令解决了问题:
- 转到:C:\\Users\\[PC NAME]\\AppData\\Local\\Android\\sdk\\tools\\bin\\(如果文件夹不可用则先下载android SDK,也可以从android studio安装过程中安装) .)
- Shift+左键单击并按W,然后回车在文件夹路径上打开CMD
- 输入cmd:sdkmanager --licenses
- 按回车后,您需要按 y 接受所有许可证
检查许可证
- 转到:C:\\Users[PC NAME]\\AppData\\Local\\Android\\sdk\\
- 检查名为 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 将存储在:
- 转到 C:\\Users\\ [PC NAME] \\AppData\\Local\\Android\\Sdk\\cmdline-tools\\latest\\bin
- 输入cmd:sdkmanager --licenses
使用 Android SDK 的文档: https : //developer.android.com/studio/command-line/sdkmanager.html
对于不使用 Andoid Studio 的 Windows 用户:
转到sdkmanager.bat
文件所在的位置。 默认情况下,它位于%LOCALAPPDATA%
文件夹内的Android\\sdk\\tools\\bin
。
通过在标题栏中键入 cmd 打开一个终端窗口
类型
sdkmanager.bat --licenses
接受所有带有“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 并接受所有许可证解决了这个问题。
您可以通过启动 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/
我已通过以下步骤解决了该问题:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.