因为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脚本? 你有什么想法吗?


当前回答

在窗口中,这个问题可以解决为: 在窗口中打开CMD 在CMD下执行此命令

飞扑医生,机器人执照 然后输入y表示接受每个许可证。 CMD将逐一显示您必须在CMD提示符中输入y来接受的每个许可证。 它解决了我的问题。我希望这对你也有用

其他回答

使用实例接受所有license。

 sdkmanager --licenses

这将提示您通过尚未接受的每个许可,您可以输入y来接受每个许可。

我得到这个错误:

License for package Android SDK Build-Tools 30.0.2 not accepted.

所以,我去了工具-> SDK管理器-> SDK工具。然后我安装了谷歌播放授权库。这就解决了问题。

请注意,对于任何现在来问这个问题的人来说,build-tools-24.0.2(我认为)现在被认为是过时的,所以你会得到:

 Error: Ignoring unknown package filter 'build-tools-24.0.2'

当运行建议安装它们的各种命令时。

解决方案是添加——all:

android update sdk --no-ui --all --filter "build-tools-24.0.2"

此外,如果你在32位linux上,构建工具23.0.1之后的所有东西都是64位的,所以不能运行。32位用户被困在23.0.1上,获得后续构建工具的唯一方法是切换到64位。

如果你输入yes | sdkmanager——licenses,那么我们打印$ANDROID_HOME/licenses/android-sdk-license的内容,

我们会得到这个

# cat $ANDROID_HOME/licenses/android-sdk-license

8933bad161af4178b1185d1a37fbf41ea5269c55

d56f5187479451eabf01fb78af6dfcb131a6481e

对于GitLab CI,要接受Android SDK Build-Tools 26.0.2许可证,您需要运行此命令

before_script:
  - mkdir -p $ANDROID_HOME/licenses
  - echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_HOME/licenses/android-sdk-license
  - echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> $ANDROID_HOME/licenses/android-sdk-license

我在windows 10的机器上尝试了上述所有命令 但是解决方案是使用SDKMANAGER来检查和接受许可证,购买安装丢失的版本