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

Espresso测试中测试插桩进程崩溃,.txt日志文件位置咨询

解决Espresso测试中「Test instrumentation process crashed」且找不到日志文件的问题

我之前在Jenkins CI环境跑Espresso测试时,也碰到过一模一样的糟心事——系统提示去看某个txt日志,但翻遍Jenkins工作区都找不到,急得头大!下面是我踩坑后总结的几个有效解决方法:

1. 先查Jenkins自带的测试报告

Jenkins会自动收集Android测试的输出,不用死磕那个提示的txt文件:

  • 直接去构建工作空间的app/build/reports/androidTests/connected目录,打开里面的HTML报告,崩溃的堆栈信息通常会内嵌在报告里,一目了然
  • 如果是用Gradle命令(比如./gradlew connectedDebugAndroidTest)触发的测试,直接在Jenkins的构建日志里搜索「instrumentation crashed」「Exception」这类关键词,Gradle会把核心的崩溃堆栈打印到控制台

2. 强制指定日志输出路径到Jenkins可访问目录

系统提示的txt文件路径其实是测试设备/模拟器的本地路径,不是Jenkins服务器的路径。你可以在Gradle配置里强制把日志输出到项目构建目录:
在app模块的build.gradle中添加:

android {
    testOptions {
        animationsDisabled = true
        // 配置测试输出目录为项目构建目录下的固定路径
        testOutputDir = file("$project.buildDir/espresso-logs")
    }
}

重新跑测试后,去app/build/espresso-logs目录下找,就能看到包含崩溃堆栈的日志文件了。

3. 用adb手动拉取设备上的日志文件

如果上面的方法没生效,直接在Jenkins构建脚本里加adb命令,把设备上的日志文件拉到Jenkins工作区:

# 先定位设备上的日志文件位置(一般在/data/data/你的包名/files目录下)
adb shell find /data/data/com.your.package.name/files -name "*.txt"
# 把找到的日志文件拉取到当前工作目录
adb pull /data/data/com.your.package.name/files/package_name.TestName#methodName.txt .

执行完这两步,Jenkins工作区里就会出现你要的日志文件了。

4. 排查Android Test Orchestrator的日志拦截问题

如果你用了Android Test Orchestrator,它可能会拦截部分崩溃日志。可以试试开启它的 debug 模式,让日志更完整:

android {
    testOptions {
        execution 'ANDROIDX_TEST_ORCHESTRATOR'
        orchestratorOptions {
            clearPackageData true
            // 开启debug模式输出详细日志
            debug true
        }
    }
}

开启后,Gradle会输出更多关于instrumentation进程的细节,包括崩溃的完整调用栈。

最后提个小技巧:Jenkins的构建日志里经常藏着关键信息,别只盯着那个提示的txt文件,有时候直接搜「Crash」「Stack trace」就能找到你要的内容!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:07:26