You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins中创建启动Android模拟器遇问题,寻求解决方法

在Jenkins中创建并启动Android模拟器的完整解决方案

我来帮你搞定Jenkins里Android模拟器的创建和启动问题,结合你遇到的配置问题和报错,给你分步骤梳理可行的方案:

一、先确认Jenkins的Android SDK基础配置

首先得确保Jenkins已经正确安装了模拟器和对应系统镜像,这是最容易踩坑的点:

  • 进入Jenkins的「Manage Jenkins」→「Global Tool Configuration」→找到「Android SDK」配置项
  • 检查SDK路径是否正确,然后点击「Add Android SDK」(如果还没配置的话),勾选以下组件:
    • 必须勾选Emulator组件
    • 选择你要创建的模拟器对应的System Images(比如你要API 33的模拟器,就选API 33的x86_64镜像,尽量选x86架构,启动更快)
  • 保存配置后,Jenkins会自动下载这些组件,耐心等下载完成

二、在你的Jenkins Job中配置模拟器

这里有两种方法,你可以根据情况选:

方法1:用Android Plugin的内置步骤(简单省心)

  1. 打开你的目标Job配置页面,找到「Build Steps」
  2. 添加「Android Emulator」步骤,然后配置这些关键参数:
    • Name:给模拟器起个好记的名字,比如test_emulator
    • Android OS Version:选择和你安装的系统镜像一致的API版本
    • Architecture:选和镜像匹配的架构(比如x86_64)
    • 勾选「Wipe data before starting emulator」,避免之前的缓存导致启动异常
    • 把「Startup timeout」设长一点,比如300秒,确保模拟器能完全启动
  3. 保存配置,运行Job试试

方法2:用命令行手动操作(更灵活,适合排查问题)

如果内置步骤不好用,试试命令行的方式,在「Build Steps」里加「Execute shell」(Linux/macOS)或者「Execute Windows batch command」(Windows):

  1. 先创建模拟器(替换成你实际安装的镜像ID):
    $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager create avd -n test_emulator -k "system-images;android-33;google_apis;x86_64" --force
    
    不知道镜像ID的话,用这个命令查看已安装的镜像:
    $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --list
    
  2. 后台启动模拟器(服务器环境不需要窗口和音频,这样设置更高效):
    nohup $ANDROID_HOME/emulator/emulator -avd test_emulator -no-audio -no-window -no-snapshot-load &
    
  3. 等待模拟器完全启动(必须等启动完成再跑测试):
    $ANDROID_HOME/platform-tools/adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done;'
    

三、针对你报错的常见排查点

从你的报错来看,大概率是以下问题之一:

  • 命令找不到:检查Jenkins的环境变量,确保$ANDROID_HOME指向正确的SDK路径,并且$ANDROID_HOME/emulator和$ANDROID_HOME/cmdline-tools/latest/bin已经加到PATH里
  • 模拟器启动超时:
    • 先增加启动超时时间
    • 确认Jenkins服务器有足够内存,模拟器至少要分配2G以上内存
    • 如果是Linux服务器,要开启KVM虚拟化:执行egrep -c '(vmx|svm)' /proc/cpuinfo,输出大于0说明支持,然后安装kvm相关包(比如Ubuntu下装qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils)
  • 镜像不匹配:创建模拟器时指定的镜像必须是已经安装的,一定要用sdkmanager --list确认清楚

内容的提问来源于stack exchange,提问作者Ibrahim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:27:30