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

Android Gradle托管设备报错:无法获取指定数量设备的原因与解决

Gradle托管设备分片启动失败:仅1台设备可用的问题排查与解决

你遇到的问题是指定2个测试分片但Gradle仅启动1台托管设备,报错提示"Unable to retrieve 2 devices, only 1 available. Proceeding to run tests on 1 shards.",结合32GB内存的机器配置,以下是可能的原因和对应的解决办法:

可能的原因

  • 单模拟器内存占用过高:Pixel 4 API30模拟器默认RAM分配通常在2GB以上,加上系统进程、Gradle本身的资源占用,剩余内存可能不足以支撑第二台设备启动。Gradle会自动检测系统可用资源,当资源不足时会自动减少启动的设备数量。
  • 项目配置限制:模块build.gradle中的托管设备配置可能未正确开启多设备支持,或者存在maxParallelForks等参数限制了并行设备数量。
  • 模拟器启动资源冲突:第一台设备启动时占用了过多CPU/IO资源,导致第二台设备启动超时,Gradle判定设备不可用。
  • GPU配置兼容性问题:使用swiftshader_indirect可能在当前环境下存在资源竞争,阻碍多设备启动。

解决方法

1. 降低单台模拟器的内存分配

在模块级build.gradle中修改托管设备的RAM配置,减少单设备内存消耗:

android {
    testOptions {
        managedDevices {
            devices {
                pixel4api30 (ManagedVirtualDevice) {
                    device = "Pixel 4"
                    apiLevel = 30
                    systemImageSource = "google"
                    // 将RAM调整为1536MB,根据实际情况可进一步微调
                    ramSize = "1536MB"
                }
            }
        }
    }
}

2. 调整Gradle并行测试配置

确保并行测试参数不限制分片数量,在模块build.gradle中添加或修改:

android {
    testOptions {
        // 启用测试 orchestrator 优化多设备测试
        execution 'ANDROIDX_TEST_ORCHESTRATOR'
        // 允许并行进程数匹配CPU核心数,避免限制分片
        maxParallelForks = Runtime.runtime.availableProcessors()
    }
}

3. 优化系统资源与GPU配置

  • 关闭机器上无关进程,释放CPU和内存资源,为第二台模拟器留出空间。
  • 尝试更换GPU模式,避免swiftshader_indirect的冲突:
    ./gradlew pixel4api30DebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.upmc.enterprises.myupmc.Suites.CITestSuite -Pandroid.experimental.androidTest.numManagedDeviceShards=2 --enable-display --info -Pandroid.testoptions.manageddevices.emulator.gpu="auto"
    

4. 升级Android Gradle Plugin(AGP)

旧版本AGP可能存在多托管设备启动的兼容性问题,升级到最新稳定版可修复已知bug。

5. 分析详细日志定位问题

保留--info参数运行命令,查看日志中第二台设备启动失败的具体细节(比如内存不足提示、模拟器启动超时日志),根据日志信息针对性解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 15:07:19