Jenkins平台上运行Appium工程报错:java.lang.RuntimeException: 不存在android或者iOS测试设备
【问题背景】
在Mac使用本地终端用 java -jar target/XXX-1.0-SNAPSHOT.jar 命令跑工程,可以!
但是在Jerkins平台上,就不行,报错:
+ java -jar target/XXX-1.0-SNAPSHOT.jar
java.lang.RuntimeException: 不存在android或者iOS测试设备
at com.XXX.tool.ui.appium.manager.AppiumDeviceManager.getDevices(AppiumDeviceManager.java:94)
at com.XXX.tool.ui.appium.manager.AppiumDeviceManager.<init>(AppiumDeviceManager.java:32)
at com.XXX.tool.ui.appium.manager.AppiumDeviceManager.getInstance(AppiumDeviceManager.java:75)
at com.XXX.tool.Run.getDeviceQueue(Run.java:217)
at com.XXX.tool.Run.dispersedRun(Run.java:54)
at com.XXX.YYY.Run.main(Run.java:27)
![](https://img2020.cnblogs.com/blog/818082/202103/818082-20210302183409591-1285527129.png)
查找问题:
1、检查Jenkins上的ADB是否能执行:
1.1)需要在Jenkins配置文件的执行Shell处加上一句:adb devices,看看能不能打出来设备信息。
(因为在本地的终端执行adb devices是可以打出来设备信息的!)
1.2)果然,在Jenkins执行这一句adb devices时,报错了…… “ jenkins: line 8: adb: command not found ”
所以ADB有问题,查找下:
王导发的链接: [Jenkins] 配置任务中的坑s
——但是解决了两个小时还是没有解决出来啊!!!
尝试解决:
1、在Jenkins配置ANDROID_HOME的环境变量
因为连接的是Android手机,Jerkins在使用ADB时需要在Jerkins配置ANDROID_HOME的环境变量的。
配置路径:Jenkins --> Manage Jerkins --> Configure System --> 全局属性 --> Environment variables:
——设置好之后,去重新跑工程,还是报错:“adb: command not found”
2、在工程的Execute shell 中加第一行脚本(要放在最前面第一行)
来使Jenkins加载环境变量
1)尝试加上“#!/bin/bash”(注意 #!/ 之前不要有空格)
——还是报错:“adb: command not found”
2)尝试加上“#!/bin/bash -ilex”(注意 #!/ 之前不要有空格)
——还是报错:“adb: command not found”
3)尝试加上“#!/bin/bash -il”(注意 #!/ 之前不要有空格)
——还是报错:“adb: command not found”
4)尝试加上“source /etc/profile”
——还是报错:“adb: command not found”,Build step 'Execute shell' marked build as failure
5)尝试加上“source /Users/XXX/.zshrc”(因为我的所有环境变量配置是在 .zshrc文件中的)
——加载了一大堆东西之后报错:
+++ autoload -U compaudit compinit
/Users/crgt/.oh-my-zsh/oh-my-zsh.sh: line 23: autoload: command not found
Build step 'Execute shell' marked build as failure
3、没有办法,前去求助王导。
向其说明,我的所有环境变量都是配置在.zshrc文件中的,所以用了 source /Users/XXX/.zshrc,但是不行。
但是把.zshrc文件里面的环境变量内容都拷贝复制放到.bash_profile 中,
然后在 中,第一行命令用:source ~/.bash_profile 。居然可以了!!!!!
所以Jerkins居然读不到.zshrc文件,而是只能读.bash_profile,来读取环境变量的配置的!!
![](https://img2020.cnblogs.com/blog/818082/202103/818082-20210302194644775-1840160569.png)
第一次成功是build #45号,一台安卓机跑了一个半小时+。
【Reference】
1、 [Jenkins] 配置任务中的坑s (帮助排查问题、解决问题)
2、Jenkins build failed due to missing android SDK (被Accept的答案也就说在Jerkins上配置Android_Home环境变量而已)
可以参考的文章:
2、使用jenkins自动化构建android和ios应用 (有讲述应用背景!)
3、Jenkins 持续集成iOS、Android项目(章节清晰)
posted on 2021-03-02 18:33 CuriousZero 阅读(331) 评论(0) 编辑 收藏 举报