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

Gradle托管设备无法接收测试执行器结果的问题求助

解决Gradle托管设备并行Espresso测试后"无法接收测试结果"构建失败问题

使用Gradle 8.0.2,通过Gradle托管设备在2个模拟器上并行运行Android Espresso测试,执行命令如下:

./gradlew pixel4api31DebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.xxx.yyy.zzz.Suites.CITestSuite -Pandroid.experimental.androidTest.numManagedDeviceShards=2 --enable-display -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"

测试完成后触发构建失败,错误日志如下:

Could not receive test results from the test executor.
io.grpc.StatusRuntimeException: CANCELLED: client cancelled
        at io.grpc.Status.asRuntimeException(Status.java:526)
        at io.grpc.stub.ServerCalls$StreamingServerCallHandler$StreamingServerCallListener.onCancel(ServerCalls.java:284)
        at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.closedInternal(ServerCallImpl.java:353)
        at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.closed(ServerCallImpl.java:341)
        at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1Closed.runInContext(ServerImpl.java:844)
        at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
        at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
        at java.base@11.0.18/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base@11.0.18/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base@11.0.18/java.lang.Thread.run(Thread.java:829)

BUILD FAILED in 56m 28s

但实际测试报告显示所有测试均成功通过:
测试报告截图

报告路径:file:///Users/xxx/repos/android/test/app/build/reports/androidTests/managedDevice/allDevices/index.html

解决方法

  • 延长gRPC连接超时时间:在项目根目录的gradle.properties中添加配置,避免因测试耗时过长触发连接取消:
    org.gradle.internal.remote.connection.timeout=600000
    org.gradle.internal.remote.connection.idle.timeout=600000
    
  • 禁用统一测试平台:在测试命令中添加参数,回退到旧的测试结果传输机制:
    ./gradlew ... -Pandroid.experimental.androidTest.useUnifiedTestPlatform=false
    
  • 匹配Gradle与AGP版本:确保Android Gradle插件(AGP)版本与Gradle 8.0.2兼容,推荐使用AGP 8.0.0及以上版本,可在项目根目录的build.gradle中调整:
    buildscript {
        dependencies {
            classpath 'com.android.tools.build:gradle:8.0.2'
        }
    }
    
  • 均衡拆分测试用例:调整测试套件的拆分逻辑,避免单个shard的测试数量过多导致超时,通过更细粒度的测试分组优化并行效率。
  • 优化模拟器性能:如果环境允许,改用硬件GPU加速(替换swiftshader_indirect为auto或host),或增加模拟器内存分配,减少卡顿导致的通信中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 09:03:18