【问题标题】:android: automatically accept licence for gradle's SDK auto-downloadandroid: 自动接受 gradle 的 SDK 自动下载许可
【发布时间】:2017-01-29 16:42:25
【问题描述】:

有这个线程 (Automatically accept all SDK licences) 和现已弃用的库 (https://github.com/JakeWharton/sdk-manager-plugin) 解决了更新(CI 服务器)系统的问题,这些系统解决了这个问题,但不再需要它们......


在当前版本的 android-tools(我认为是 v2.2.0 之后)中,gradle 会自动下载所需的 SDK、构建工具等(这会很棒)。

在我的情况下,gradle 似乎为我下载了一个新的 build-tools-version(因为我更改了代码中的依赖项)但它停止了,因为我没有接受许可证。

* 出了什么问题:
配置项目 ':app' 时出现问题。
> 您尚未接受以下 SDK 组件的许可协议:
[Android SDK Build-Tools 24.0.2].

在构建项目之前,您需要接受许可协议并使用 Android Studio SDK 管理器完成缺失组件的安装。

或者,要了解如何将许可协议从一个工作站转移到另一个工作站,请访问http://d.android.com/r/studio-ui/export-licenses.html

~ 问题是,我需要做什么才能完成这项工作?


PS:这是我在 CI 服务器上的调用:

./gradlew clean assembleDebug

【问题讨论】:

  • The instructions 看起来相当简单。你遇到什么问题?您没有 CI 服务器上 licenses/ 目录的写入权限吗?
  • 如果我做对了,许可证可能会在每次更新时更改,因此它会再次停止。我正在寻找“gradlew”的某种参数,例如“自动下载 SDK 时自动接受许可证”。
  • Google 极不可能提供此恕我直言。
  • 所以当我手动构建时它会下载所需的东西很好,但我不能在我的 CI 服务器上使用它,对吗?
  • 我尝试了echo "y" 的东西,但它不起作用。它给了我一个Unknown response ''。在另一个问题中,有一条评论说会有一个标志--accept-license,但它似乎仍然不可用。因此,如果不手动处理许可证,这里就没有进展(顺便说一句:ubuntu 上的 license-文件夹在哪里)?

标签: android gradle download sdk licensing


【解决方案1】:

$ANDROID_HOME/licenses 是许可证文件夹的位置。

请参阅https://stackoverflow.com/a/38381577/901597 了解在 CI 机器上配置此文件夹的命令。

【讨论】:

  • 该文件夹不存在。它仅使用 SDK 更新管理器的 UI 版本创建。如果尝试从命令行安装 sdk 组件,则永远不会创建该文件夹。
猜你喜欢
  • 2016-10-31
  • 1970-01-01
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-02
相关资源
最近更新 更多