【问题标题】:Android SDK location not found未找到 Android SDK 位置
【发布时间】:2020-10-30 07:04:31
【问题描述】:

我正在尝试在我的机器上本地使用 Jenkins 测试和构建我的 android 应用程序。我在 Linux 上,我通过运行以下命令通过 docker 启动了 Jenkins:

docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins

然后我打开浏览器并从localhost:8080 解雇了 Jenkins。初始设置后,我通过以下步骤添加了环境变量:

  1. 转到管理 Jenkins
  2. 配置系统
  3. 转到全局属性
  4. 检查环境变量
  5. 在里面添加ANDROID_SDK_ROOTANDROID_HOME环境变量
  6. 点击应用并保存

这是我机器上 Jenkins 中的样子:

基本上遵循这个答案的步骤:https://stackoverflow.com/a/29231580/4954322

我还在我的~/.zshrc 文件中添加了相同的环境变量:

export ANDROID_SDK_ROOT=/home/harry/Android/Sdk/
export ANDROID_HOME=/home/harry/Android/Sdk/

我在项目配置的 Build 部分中使用 Use Gradle Wrapper 并使用以下命令:

clean
testDebugUnitTes
assembleDebugBuild

完成所有这些步骤后,我的构建仍然失败并显示消息:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> SDK location not found. Define location with an ANDROID_SDK_ROOT environment variable
or by setting the sdk.dir path in your project's local properties 
file at '/var/jenkins_home/workspace/MeteorDebugBuild/local.properties'.

我的问题是如何解决这个错误以及为什么在所有这些设置下构建仍然失败?

【问题讨论】:

  • 你找到解决这个问题的方法了吗?
  • @Andrey 不,我没有

标签: android docker jenkins continuous-integration continuous-deployment


【解决方案1】:

我认为 docker 容器与您的 Jenkins 是隔离的,这意味着容器内部没有环境变量 ANDROID_SDK_ROOTANDROID_HOME。你想要的是:

docker run -e ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} -e ANDROID_HOME=${ANDROID_HOME} -p 8080:8080 -p 50000:50000 jenkins/jenkins

我没有检查它是否有效,但我希望它可以解决你的问题

【讨论】:

    猜你喜欢
    • 2015-03-30
    • 1970-01-01
    • 2013-10-16
    • 2015-11-17
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多