因为gradle android插件2.2-alpha4:

Gradle会尝试下载项目中缺失的SDK包 取决于

这非常酷,是杰克·沃顿的一个项目。

但是,要下载SDK库,你需要:接受许可协议,否则gradle会告诉你:

您还没有接受以下SDK的许可协议 组件:[Android SDK Build-Tools 24, Android SDK Platform 24]。 在构建项目之前,您需要接受许可证 协议并完成缺少组件的安装 使用Android Studio SDK管理器。或者,学习如何 将许可证协议从一个工作站转移到另一个工作站,转到 http://d.android.com/r/studio-ui/export-licenses.html

这是一个问题,因为我想在做gradle构建时安装所有的sdk依赖。

我正在寻找一个解决方案,自动接受所有的许可证。也许是一个gradle脚本? 你有什么想法吗?


当前回答

我跑

#react-native run-android 

从终端遇到了这个问题。 手动操作请进入“Android Studio -> Android SDK -> SDK平台” 单击“显示包详细信息”,检查:

+ Google APIs
+ Android SDK Platform 23
+ Intel x86 Atom_64 System Image
+ Google APIs Intel x86 Atom_64 System Image

安装包时,check accept license =>可以解决此问题。

其他回答

对于最新的Android Studio(2.3),更新/接受所有许可证的最佳方法是运行:

cd $ANDROID_HOME
tools/bin/sdkmanager --licenses

您可能仍然需要根据您的设置将许可证文件复制到其他位置。

我终于在Windows上找到了一个解决方案,有一个真正的静音和自动安装:

在Windows上,以下语法不起作用:

echo y | sdkmanager --licenses

似乎“y”没有正确地发送到批处理中调用的java程序。

解决方法是创建一个文件file-y.txt,其中包含几个“y”,一行一行,然后使用

call sdkmanager --licenses < file-y.txt

这将在许可证目录中创建所需的文件。这个问题可能与Java中BufferedReader的使用有关

在android sdk管理器选项卡中卸载licence失败的包。 重新安装时,将提示您接受许可证

在Windows上,在您的PATH中安装并配置了sdkmanager,下面的一行程序应该适用于每个默认发行版(事实上我想不出一个反例):

wsl --exec yes "y" | sdkmanager --licenses

如果这还不够,您可能想看看这个脚本(免责声明:这是我的)。

我有这个问题,我认为这些答案没有帮助,然后我发现我的环境变量是不正确的,尽管我能够在任何地方执行sdkmanager命令,所以请确保环境变量设置正确:

在环境变量中定义一个新变量 ANDROID_SDK_ROOT作为名称,并为其赋值 Sdktools位于。: C: \ Android sdk \ \ 编辑路径,将创建的变量添加为 %ANDROID_SDK_ROOT%\tools\bin重新启动cmd。 运行答案中提到的命令: sdkmanager——许可证 使用sdkmanager "packageName"安装所需的软件包。