Jenkins在外部目录时不能使用adb

时间:2017-06-14 14:38:58

标签: android shell jenkins

正如标题所说,Jenkins可以正确地将目录切换到adb,然后执行它。但是当它在adb的目录之外时它不能使用它。 以下代码:

.//opt/android-sdk-linux//platform-tools/adb --help

产生以下输出:

+ .//opt/android-sdk-linux//platform-tools/adb
/tmp/jenkins882020622874679741.sh: rad 18: .//opt/android-sdk-linux//platform-tools/adb: Filen eller katalogen finns inte
Build step 'Execute shell' marked build as failure
Finished: FAILURE

这段代码:

cd /opt/android-sdk-linux//platform-tools/
ls
./adb --help

正确输出adb帮助手册。 另外,输入

adb --help
即使由" adb"给出的路径,

也会出现相同的错误。附加到$ PATH变量。

ls /opt/android-sdk-linux//platform-tools/adb

还表明它可以从当前目录中看到adb。

如何在不将目录切换到adb目录的情况下让jenkins运行adb?

编辑1:

为adb添加别名会导致此错误:

+ alias adb=.//opt/android-sdk-linux//platform-tools/adb
+ adb shell am instrument -w -r -e debug false -e class se.***** se.*******/android.support.test.runner.AndroidJUnitRunner
/tmp/jenkins523172794505644997.sh: rad 24: adb: kommandot finns inte
Build step 'Execute shell' marked build as failure
Finished: FAILURE

2 个答案:

答案 0 :(得分:0)

显然,PATH包含仍然存在问题,因此可能让Jenkins打印PATH变量进行调试。临时解决方案可能是使用别名:

$ alias adb =“.// opt / android-sdk-linux // platform-tools / adb”

此命令将导致每次执行 adb 时执行 .// opt / android-sdk-linux // platform-tools / adb

答案 1 :(得分:0)

在对此工作一段时间后,我发现Jenkins允许您在设备配置中注入环境变量。您还可以单独为每个构建注入环境变量。我不知道为什么通过bash脚本导出它们不起作用,但这对我有用。总之,使用Jenkins的内置工具注入$ PATH变量修复了所有内容。