Jenkins 中的 Android 模拟器

Posted

技术标签:

【中文标题】Jenkins 中的 Android 模拟器【英文标题】:Android Emulator in Jenkins 【发布时间】:2017-12-07 15:08:09 【问题描述】:

我尝试在 Jenkins 中使用 android Emulator, 我遵循本指南:Jenkins Plugin

我是从无头构建机器 CentOS 中完成的。 我尝试像示例一样从詹金斯创建模拟器

当我尝试do this like the example,但使用我的版本时,我从詹金斯那里得到了这个错误:

PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/opt/android-sdk_r24.2-linux]!
[android] Emulator did not appear to start; giving up
[android] Stopping Android emulator
$ /opt/android-sdk_r24.2-linux/platform-tools/adb kill-server
Finished: NOT_BUILT

我也尝试像第二个示例一样,我在终端中写了“android list avd” 得到:

Available Android Virtual Devices:
Name: android-23-emulator
Path: /root/.android/avd/android-23-emulator.avd
Target: Google APIs (Google Inc.)
     Based on Android 4.2.2 (API level 17)
Tag/ABI: default/armeabi-v7a

在 AVD 名称中输入名称“android-23-emulator”。 而且 jenkins 没有在正确的文件夹中搜索这个,得到了这个错误:

FATAL: /var/lib/jenkins/.android/avd/android-23-emulator.ini (No such file or directory)
java.io.FileNotFoundException: /var/lib/jenkins/.android/avd/android-23-emulator.ini (No such file or directory)

当我的时候:

ANDROID_AVD_HOME=/root/.android/avd
ANDROID_HOME=/opt/android-sdk_r24.2-linux
ANDROID_SDK_ROOT=/opt/android-sdk_r24.2-linux

我很乐意为您提供任何帮助!谢谢!


【问题讨论】:

【参考方案1】:

为了在无头 Linux 上运行 Android emulator,您需要添加以下开关:

-no-audio -no-window

一般情况下,用户jenkins 无法访问/root ...

因此您需要移过$HOME/.android 目录:

mv /root/.android /var/lib/jenkins/.android

AVD 位置也需要相应调整:

export ANDROID_AVD_HOME=/var/lib/jenkins/.android/avd

【讨论】:

以上是关于Jenkins 中的 Android 模拟器的主要内容,如果未能解决你的问题,请参考以下文章

无法在 MAC 上使用 jenkins 在模拟器上运行测试用例

在 CI 中使用存储权限进行 Android UI 测试

在 Jenkins 中调用快照会导致模拟器超时

NSUserDefaults 没有在 Jenkins 的模拟器中保存内存

Android移动应用自动化测试都需要哪些环境?

如何在 jenkins 上运行 ios 模拟器进行 ui 自动化测试