找不到 Android SDK 位置

Har*_*rry 5 continuous-integration android continuous-deployment jenkins docker

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

docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins
Run Code Online (Sandbox Code Playgroud)

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

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

这是我机器上 Jenkins 的样子: 在此输入图像描述

基本上遵循这个答案的步骤:/sf/answers/2046210631/

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

export ANDROID_SDK_ROOT=/home/harry/Android/Sdk/
export ANDROID_HOME=/home/harry/Android/Sdk/
Run Code Online (Sandbox Code Playgroud)

Use Gradle Wrapper在项目配置的“构建”部分中使用以下命令:

clean
testDebugUnitTes
assembleDebugBuild
Run Code Online (Sandbox Code Playgroud)

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

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'.
Run Code Online (Sandbox Code Playgroud)

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

小智 0

我认为 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

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