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

Jenkins Android模拟器启动失败:快照操作待处理且已超时

解决Jenkins Android Emulator插件无法启动手动创建AVD的问题

看起来你已经绕开了动态创建AVD的坑,但卡在了手动AVD的启动环节,我来帮你排查几个高频踩坑点:

1. 先确认AVD的归属权与配置兼容性

你手动创建AVD时大概率用了其他用户(比如root),但Jenkins是跑在jenkins用户下的,权限不匹配直接会导致启动失败:

  • 先把AVD和SDK目录的所有权切换给jenkins用户:
    sudo chown -R jenkins:jenkins /var/lib/jenkins/.android/
    sudo chown -R jenkins:jenkins /var/lib/jenkins/.android-sdk/
    
  • 再用jenkins身份检查AVD状态,确保配置正常:
    su - jenkins -c "avdmanager list avd"
    
    输出里要能看到你创建的AVD,且路径指向/var/lib/jenkins/.android/avd/,同时要确认AVD用的系统镜像和Jenkins服务器的CPU架构匹配(比如x86服务器别选arm镜像,除非开启硬件加速)。

2. 开启硬件加速(重中之重!)

模拟器启动失败90%的原因是没开硬件加速,尤其是无头服务器环境:

  • 先检查服务器是否支持KVM:
    kvm-ok
    
    如果输出KVM acceleration can be used就没问题;如果不行,先去BIOS开启虚拟化选项,再安装KVM驱动。
  • 在Jenkins的Android Emulator插件配置里,勾选Enable hardware acceleration,或者手动给模拟器加启动参数-accel on。

3. 调整模拟器启动参数适配无头环境

Jenkins服务器一般是无头的,默认启动参数可能会因为图形界面问题卡死,试试加这些参数:
在插件配置的Emulator launch parameters里填入:

-no-window -no-audio -no-boot-anim -gpu auto -memory 2048
  • -no-window:禁用图形界面,适合服务器运行
  • -gpu auto:自动适配GPU渲染模式,避免显卡兼容性问题
  • -memory 2048:给模拟器分配足够内存,防止启动时内存不足

4. 用详细日志定位具体问题

你给出的堆栈信息不完整,建议直接在服务器上用jenkins身份执行启动命令,获取详细日志:

su - jenkins -c "/var/lib/jenkins/.android-sdk/emulator/emulator @你的AVD名称 -verbose"

-verbose会输出每一步的启动细节,能精准定位到是镜像损坏、端口占用还是其他配置问题。

5. 确认SDK组件版本匹配

SDK工具、模拟器、系统镜像版本不兼容也会导致启动失败:
用jenkins身份执行sdkmanager --list,确保emulator、platform-tools、system-images的版本是稳定匹配的,尽量用最新的稳定版组件。

如果试完这些还是不行,把-verbose输出的完整日志贴出来,我再帮你深挖问题!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:34:18