GitLab CI运行Android Gradle托管设备报错,本地正常求排查
Android Gradle托管设备GitLab CI环境报错排查
问题背景
本地运行Android Gradle托管设备功能正常,但在GitLab CI环境中出现启动失败报错(报错截图:报错截图)。
设备配置
testOptions { managedDevices { devices { illusionDevice (com.android.build.api.dsl.ManagedVirtualDevice) { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp-atd" } } } }
已启用属性
android.testoptions.manageddevices.emulator.gpu=swiftshader_indirect
排查方向及解决方案
1. CI Runner资源不足
托管设备启动需要足够CPU和内存,GitLab默认Runner资源配额可能无法满足:
- 检查Runner配置,确保分配至少2核CPU、4GB以上内存
- 在
.gitlab-ci.yml中添加资源限制配置:
resources: limits: memory: 5120M cpu: 2
2. ATD镜像兼容性问题
aosp-atd是为自动化测试优化的镜像,部分CI环境存在兼容性限制:
- 尝试切换为常规
aosp镜像,修改配置:
systemImageSource = "aosp"
- 若必须用ATD镜像,确认CI环境的内核版本、容器系统符合镜像运行要求
3. GPU配置未生效或不兼容
CI环境可能无法识别swiftshader_indirect配置:
- 尝试禁用GPU加速,改用纯CPU渲染,添加属性:
android.testoptions.manageddevices.emulator.gpu=off
- 检查CI环境是否有其他环境变量覆盖该Gradle属性
4. 网络限制导致镜像下载异常
CI环境的代理或防火墙可能拦截系统镜像下载:
- 确认Runner能正常访问Google Maven仓库和Android镜像服务器
- 在CI配置中添加镜像缓存逻辑,避免重复下载
5. Gradle/AGP版本不一致
本地与CI环境的Gradle或Android Gradle Plugin版本差异可能引发问题:
- 检查CI环境使用的Gradle和AGP版本是否与本地完全一致
- 升级到最新稳定版AGP,修复已知CI兼容性bug
内容的提问来源于stack exchange,提问作者illuzor
相关产品推荐
相关产品推荐

