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

Android Studio Chipmunk多模拟器并行测试构建失败求助

解决Android Studio Chipmunk多模拟器并行测试文件占用问题

问题背景

升级至Android Studio Chipmunk | 2021.2.1 Patch 1后,在多个模拟器上并行运行Android测试时,Gradle会因尝试访问被第一个模拟器占用的test-result.pb文件而构建失败,错误提示文件被其他进程占用,而旧版本可正常支持多模拟器并行测试。

解决方案

  • 调整Gradle测试文件锁定策略
    在项目根目录的gradle.properties中添加以下配置,修改Gradle对测试结果文件的锁定超时逻辑,避免因文件被占用直接报错:

    org.gradle.test.output.lock.setExclusiveLockTimeout=5000
    

    数值单位为毫秒,设为0则会无限等待锁释放,可根据实际情况调整。

  • 强制隔离每个模拟器的测试结果目录
    在app模块的build.gradle(Groovy)或build.gradle.kts(Kotlin)中,为connected测试任务指定独立的输出目录,确保每个模拟器的测试结果文件完全分离:

    android {
        testOptions {
            // 可选:启用测试编排器,提升多设备测试稳定性
            execution 'ANDROIDX_TEST_ORCHESTRATOR'
            connectedTests {
                all {
                    // 动态生成含设备名称的独立目录
                    testResultsDir = file("${buildDir}/outputs/androidTest-results/connected/${variant.name}/${device.name}")
                }
            }
        }
    }
    
  • 清理残留进程与文件
    每次启动并行测试前,先执行清理命令,清除可能残留的锁定文件和进程:

    # Windows系统
    gradlew.bat cleanTest connectedDevDebugAndroidTest
    
    # macOS/Linux系统
    ./gradlew cleanTest connectedDevDebugAndroidTest
    

    若仍有问题,可手动在任务管理器中结束所有adb.exe、qemu-system-x86_64.exe相关进程,再重启模拟器和测试。

  • 临时降级AGP版本
    若上述方法均无效,可尝试将Android Gradle Plugin(AGP)降级至升级前的稳定版本(比如Arctic Fox对应的7.0.x系列),该问题大概率是AGP 7.2.x版本引入的兼容性bug:

    // 项目根目录build.gradle
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.4' // 替换为之前正常使用的版本
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 01:45:34