android - 如何从 CI 的服务帐户访问 Android 虚拟设备 (AVD)?

标签 android android-emulator jenkins android-virtual-device android-emulator-plugin

previous questions 中所述可知Android虚拟设备默认保存在Documents and Settings\user\.android路径下。目前我有一个 Jenkins 构建服务器,它作为系统帐户运行 Jenkins 进程。当使用Android Emulator Plugin时对于 Jenkins,如果我尝试通过“AVD 名称”选择模拟器,我将无法访问在我的用户帐户(我将其称为 myUserAccount)下设置的 AVD 设备。所以AVD设备当前保存在 C:\Users\myUserAccount\.android\avd\x86NexusS 并且我会收到一个异常,指出系统在系统路径下找不到 avd:

FATAL: C:\WINDOWS\system32\config\systemprofile\.android\avd\x86NexusS.ini(系统找不到指定的路径)

有几种方法可以解决这个问题:

  1. (首选)找到一种方法来访问在系统帐户下的 myUserAccount 下创建的 AVD? **有人知道如何做到这一点吗? **
  2. 如何将我的用户切换到“系统”帐户以创建 AVD 配置文件?
  3. (最坏的情况)以 myUserAccount 身份运行 Jenkins 构建过程 - 如果其他用户想要更改构建服务器,这是很困惑且不可扩展的。

最佳答案

AVD默认搜索其ANDROID_SDK_HOME下的设备,该设备指向%HOME%。您可以通过创建指向您的 C:\Users\myUserAccountANDROID_SDK_HOME jenkins 环境变量来让 jenkins 找到您现有的设备配置。

但是我发现这有点脆弱,我可能会让您的用户和 jenkins 使用第三方位置(例如 D:\JenkinsData\AVD)来存储这些文件。

关于android - 如何从 CI 的服务帐户访问 Android 虚拟设备 (AVD)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18237071/

相关文章:

android - 处理产品口味时,main/AndroidManifest.xml 中的包名称应该是什么?

Android Studio 1.1.0 Facebook SDK 登录

java - 如何在 RX java 链中使用 "if-else"?

安卓设备版本

Android 模拟器提示和技巧

java - 如何在选项卡式 Activity 中实现连接到 firebase 数据库的 recyclerView?

android - adb pull命令权限

php - 尝试在Jenkins中执行测试,但不存在供应商目录

python - Ansible 由于其构建的 ssh 问题而挂起

JENKINS:当我尝试将旧版 JDK 用于特定 Maven 项目时出错