正如标题所说,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
答案 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变量修复了所有内容。