我下载了最新的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和android工具所在的/opt/android-sdk。两者都不包含名为license的文件夹。


当前回答

打开$ANDROID_HOME/tools/bin目录 然后启动CMD

./sdkmanager --licenses

接受列出的所有许可证。

在这之后,进入sdk中的许可证文件夹,检查它是否有以下五个文件:

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。

其他回答

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

通过Android Studio接受Android SDK许可

从命令行接受许可协议的方式已经改变。你可以使用位于$ANDROID_SDK_ROOT/tools/bin的SDK管理器

例如在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现在是正确的变量

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

使用命令“tools/android Update SDK—no-ui”更新android SDK 在Jenkins机器上找到android SDK文件夹,创建“许可证”文件夹 创建名为“android-sdk-license”的文件,并从dev机器粘贴许可证

如果你的React Native应用有这个问题,除了上面提到的步骤,确保你有本地。在你的应用程序的android目录(AppName/android)中指向你的“sdk”目录的properties文件:

sdk.dir=/PATH_TO_SDK/

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

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

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

按y接受所有许可

瞧!您已经接受了SDK许可证,并且已经准备好了。