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
相关产品推荐
相关产品推荐

