【问题标题】:Why Jenkins Search Android SDK Tools In Different Folder?为什么 Jenkins 在不同的文件夹中搜索 Android SDK 工具?
【发布时间】:2019-07-21 12:21:34
【问题描述】:

我只是想在 Jenkins 上构建一个简单的 android 项目,并安装了所有关于 SDK 的内容,如下图所示

但 Jenkins 因此日志失败

Observed package id 'tools' in inconsistent location 'C:\Users\Administrator\AppData\Local\Android\sdk\tools' (Expected 'C:\Users\Administrator\AppData\Local\Android\sdk\tools\tools')
Checking the license for package Android SDK Build-Tools 29.0.1 in C:\Users\Administrator\AppData\Local\Android\sdk\tools\licenses
Warning: License for package Android SDK Build-Tools 29.0.1 not accepted.
Checking the license for package Android SDK Platform 29 in C:\Users\Administrator\AppData\Local\Android\sdk\tools\licenses
Warning: License for package Android SDK Platform 29 not accepted.

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Failed to install the following Android SDK packages as some licences have not been accepted.
     build-tools;29.0.1 Android SDK Build-Tools 29.0.1
     platforms;android-29 Android SDK Platform 29

我还在 Jenkins 配置中指定了 SDK 路径

为什么 Jenkins 搜索 sdk/tools/tools 下的东西?

【问题讨论】:

    标签: android jenkins android-sdk-tools


    【解决方案1】:

    这只是一个警告;杀死构建的是许可证未被接受。

    我怀疑settings.gradle 中的值与此行为有关。

    【讨论】:

    • 但是问题导致Jenkins搜索sdk\tools\licenses而不是sdk\licenses
    • @blackkara 刚刚看到;根据位置,似乎是 Visual Studio SDK 安装。以管理员身份运行 Jenkins 通常不是一个好主意,因为脚本可以为所欲为。尝试使用gradlew.bat -d assembleDebug 手动构建。环境变量也会对此产生影响。
    • 但我没有看到 Jenkins 错误的搜索路径和答案/评论之间有任何关系。为什么我需要手动运行 gradlew.bat -d assembleDebugassembleDebug 已经在 J​​enkins 的 Build/Tasks 部分设置?我已经在构建服务器上正确安装了 SDK 和 Jenkins 配置。
    • @blackkara 因为你不会得到任何类似的调试输出,并且可能只是继续猜测这里出了什么问题。即使在其他位置安装新的 SDK 也可能值得一试。这个问题缺乏太多的信息来提供直接的答案——没有提供settings.gradle,环境变量也是未知的。这似乎不是默认的 Gradle 输出,而是在其之上的一些混合框架。
    • @blackkara 好吧,SDK/NDK 位置确实在local.properties 中定义。这些环境变量可以在 Windows 上设置,当右键单击 My Computer > Properties > Advanced System Settings > Environment Variables...(可以在每个用户和系统范围内定义它们)。例如。当以用户 Jenkins 身份运行 Jenkins 时(通常是这样),可以为该用户设置所有其他变量(除了可以在 GUI 中设置的变量)。只知道它会接他们,所以他们可能会干扰。
    猜你喜欢
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2013-07-13
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多