您尚未接受以下SDK组件的许可协议。

620

我下载了最新的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 Manager完成缺失组件的安装。 或者,如果想要了解如何从一台计算机转移到另一台计算机,请转到 http://d.android.com/r/studio-ui/export-licenses.html

我检查了放置Android工具的~/.android/opt/android-sdk,两个文件夹中都没有名为licenses的文件夹。


请分享您的 build.gradle 文件。 - Nishant Dubey
1
如果在Windows上,请确保以管理员身份运行。 - bland
63
我已经通过前往Android Studio->工具->SDK管理器,并在SDK工具中安装了Google Play许可库、Android SDK工具和Android SDK平台工具来解决了这个问题。 - Seymur Mammadli
它向我显示了这个错误:Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156) at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75) at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81) - Ali Azaz Alam
15个回答

1013

接受许可协议的命令行方式已更改。您可以使用位于以下位置的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现在是正确的变量。


66
我接受了所有的许可并收到了消息:“接受?(y/N):y 所有SDK包许可已被接受 完成”,但是错误仍然出现。 - saike
9
我们发现我们安装了两个Android SDK。其中一个被Gradle使用,另一个由Android Studio管理。你可能也遇到了同样的问题。 - Hugo
15
所有SDK包的许可证均已接受。======] 100%计算更新...但仍然无法工作。 - Shahid Karimi
7
你好,@BenjaminGruenbaum,我又来了,一年过去了。 - Shahid Karimi
11
对于Windows系统,您需要前往C:\Users\shashank\AppData\Local\Android\Sdk\tools\bin,然后运行sdkmanager --licenses。接着,接受尚未接受的许可证即可。 - Shashank Shah
显示剩余31条评论

162

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

1. 通过命令行打开Android SDK管理器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

47
./sdkmanager --update 命令触发了我需要同意的协议。 - earthmeLon
26
当我运行./sdkmanager --licenses时,出现了“main”线程中的异常java.lang.NoClassDefFoundError:javax / xml / bind / annotation / XmlSchema。你有任何想法吗? - Roman Gaufman
4
您是否已经找到解决您评论中提到的问题的方法?我也遇到了相同的问题。 - james emanon
2
我和@RomanGaufman一样遇到了同样的问题。 - paul_f
6
@jamesemanon,我解决了这个问题: 1)打开Android Studio。 2)进入“首选项”->“外观和行为”->“系统设置”->“Android SDK”。 3)点击SDK工具选项卡。 4)搜索“Android SDK命令行工具”并安装它们。 - tn2000
显示剩余5条评论

135

前往 $ANDROID_HOME/tools/bin 目录并运行命令行。

./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/

如果你的SDK安装在/opt目录中。


21
如果是Windows系统,路径应该是这样的 - C:\Users\xxx\AppData\Local\Android\Sdk\tools\bin,而命令sdkmanager --licenses``./在Windows上不需要。 - garg10may
感谢 @garg10may,通过在 PowerShell 中运行 ./sdkmanager --licenses 命令,我成功地为所有通过 Android Studio 安装的 SDK 进行了许可证管理。我只安装了 Android Studio 以使用 Phonegap CLI,没有任何 Android Studio 项目。 - vahanpwns
1
许可证文件夹丢失了,该怎么办? - Prince Hamza
1
在我的Ubuntu上运行chmod -R 777 /usr/lib/android-sdk/并接受许可证解决了这个问题。 - DevD'Silva
1
你需要使用JAVA 8,不要使用更新的Java版本。 - Jefferson
显示剩余8条评论

98

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

  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. 一旦按下Enter键,您需要按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)

打开 Android Studio,选择 "Tools" > "SDK Manager" > "Android SDK Command-Line Tools"(只需选择加入即可)

enter image description here

SDKManager 将被存储在以下位置:

  1. 前往 C:\Users\ [计算机名称] \AppData\Local\Android\Sdk\cmdline-tools\latest\bin
  2. 在命令行中键入:sdkmanager --licenses

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


4
谢谢!根据你提供的安装指南和路径(我使用 Arch Linux,所以路径是 /home/[USER]/Android/Sdk/cmdline-tools/latest/bin/sdkmanager),使用 sdk-manager 后,让我成功解决了许可证问题!而 Android SDK 自带的 sdkmanager 路径为 /opt/android-sdk/tools/bin/sdkmanager 似乎有问题。 - Efosa
3
不是Windows,而是“ERROR: JAVA_HOME未设置,且在您的PATH中找不到'java'命令。” - Michael
1
JAVA_HOME是一个独立的错误。 下载JDK 11(最好是11)- https://jdk.java.net/archive/ -> 解压缩 -> 在环境变量中创建新路径并将目录添加为JAVA_HOME。 - Liban

65

对于没有使用Andoid Studio的Windows用户:

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

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

  3. 输入

    sdkmanager.bat --licenses
    
  4. 输入“y”接受所有许可证。


1
我在Program Files中找到了这个,但它直到我以管理员身份运行才能继续接受许可证。 - bland
4
请注意,如果你来自英国,在拼写单词“licenses”时要用美式拼写,而不是像在英国我们使用的“licences”。这是一个简单的错误,让我困惑了一分钟,没有看到问题的关键。 - StudioTime
如果你在Unity中遇到了这个错误,就像我一样。接受许可证后,请重新启动它。 - Dmitry Bosikov

57

macOS Sierra 10.12.6更新 - Android Studio for Mac 2.3.3

寻找sdkmanager文件,通常位于:

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

./sdkmanager --licenses

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

为了验证问题是否已经解决,请重复涉及许可问题的操作。


1
我无法找到Android/sdk目录中存在的“tools”文件夹...已经仔细查看了,但没有找到。 我正在使用Mac OS Mojave 10.14.4和Android Studio 3.6.3。 能提供帮助吗? - Jayprakash Dubey

38

我通过打开Android SDK Manager并安装对应版本(API 24)的SDK构建工具来解决了这个问题。

之前我也尝试过使用命令行更新,但我怀疑Android SDK Manager能够更完整地解决依赖问题,包括许可证问题。


1
这适用于GUI SDK Manager,但不幸的是对于命令行不起作用。 - IgorGanapolsky
1
使用@Anil的答案来解释命令行。 - Jacksonkr
我通过安装所抱怨的版本(例如:API 27)的SDK平台来解决了这个问题。 - jsina

29

也许我有些晚了,但这个帮助我在OSX上接受SDK许可证。如果您已经安装了Android SDK工具,请运行以下命令:

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

按下y接受所有许可证

完成!您已经接受了SDK许可证,可以开始使用了。


1
在 macOS 上,您可以使用 yes | ~/Library/Android/sdk/tools/bin/sdkmanager --licenses 来自动接受所有许可证,在 Linux 上使用 y | ~/Library/Android/sdk/tools/bin/sdkmanager --licensesy 基本上与 yes 相同,只是输出 y 以接受请求的输入,直到没有更多的输入需要并停止该过程。 - dragon788

21

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

在此输入图像描述

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


15

我遇到了类似的问题,但是执行"./sdkmanager --licenses"并没有起作用。我按照这个帖子,并阅读了"obladors"的评论,找到了解决方案: https://github.com/oblador/react-native-vector-icons/issues/527

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

将23.0.1替换为您的版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接