我尝试在Jenkins
android
项目上设置与gradle
的持续集成
当我构建它时,我收到以下错误:
[Android Gradle Jenkins Experiment2] $ "/Users/Shared/Jenkins/Home/workspace/Android Gradle Jenkins Experiment2/gradlew" build
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':app'.
The SDK directory '/Users/chaz/Library/Android/sdk' does not exist.
以下是我的jenkins配置的一部分:
ANDROID_HOME
/Users/chaz/Library/Android/sdk
JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/
我的机器是OS X El Capitan Version 10.11.6
我尝试了以下内容:
sdk.dir
文件中的local.properties
(它指向/Users/chaz/Library/Android/sdk
)。ANDROID_HOME
env变量(没有帮助)。当我用Google搜索时,我发现有人面对同一个issue。提供的解决方案如下:
解决方案
最有可能发生这种情况,因为你重写了ANDROID_HOME - 删除类似的环境自定义,然后SDK应该 安装好。
确认
谢谢,是的,这是env变量的重叠。我删除了除全局之外的所有内容并将其保存在$ {ANDROID_HOME}中。
我应该如何处理 除全局之外的所有内容并将其保存在$ {ANDROID_HOME}。 解决方案的一部分?
编辑:我成功地能够在具有相同jenkins配置的Windows机器上使用Jenkins(我能够成功构建,也可以在设备中安装apk)。
提前致谢!
答案 0 :(得分:16)
这闻起来像许可问题。您可能已授予sdk-dir但不授予父目录的权限。
答案 1 :(得分:3)
在我的情况下,它发生的原因是文件
local.properties
已被添加到.gitignore
(我从远程组装)
答案 2 :(得分:2)
我只想说一下我们如何在项目中解决此问题。它可能会帮助某人。
Jenkins的工作目录位于“ / User / shared”下,而我们的SDK位于“ / User / foo”下
我们试图向用户foo和所有人授予对SDK文件夹及其父文件夹的权限,但这没有用。
然后,我们通过Android SDK Manager在/ user / Shared / Jenkins / Library / Android / SDK下安装了SDK,并授予foo用户和所有人对新SDK文件夹及其父文件夹的权限。此外,我们在Jenkins项目配置中将SDK路径更改为新的。然后就可以了。
答案 3 :(得分:1)
正如@ligi所说,由于许可问题。所以它可以通过2种方式修复
使用终端
在〜/ Library / path中运行以下命令chmod 777
/Users/username/Library/
。通过执行ls -s
命令
所以/Users/username/Library/
现在应该显示这样的权限:
drwxr-xr-x@
第二种方法,在终端上运行以下命令以取消隐藏文件资源管理器中的库
chflags nohidden ~/Library/
所以现在导航&右键单击Library文件夹 - >获取信息 - >滚动 下来 - >更改对话框中的权限权限
现在运行jerkin,它应该能够访问Library
中的sdk目录答案 4 :(得分:0)
我遇到了同样的问题,找到了下一个解决方案:删除Jenkins环境变量中的ANDROID_HOME。
答案 5 :(得分:0)
转到Jenkins>管理Jenkins>配置系统
检查“环境变量”
添加名称:ANDROID_HOME,值-> android sdk的完整路径,例如/ Users / {username} / Library / Android / sdk
点击“应用”,然后保存并重试构建