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

Android Studio单元测试中无法查看Log输出的问题排查

解决Android单元测试中Log无输出的问题

核心原因很明确:你写的是本地单元测试(位于src/test/java目录下),这类测试直接在本地电脑的JVM上运行,完全不依赖Android设备或模拟器。而Android Studio的Logcat是专门捕捉Android设备/模拟器上的系统和应用日志的,所以本地JVM里的Log.*输出根本不会出现在Logcat里。

正确查看日志的方式

直接查看Android Studio的Run窗口——就是你启动单元测试后底部弹出的控制台面板。所有Log.d()/Log.i()等调用的输出,都会直接打印在这里。

如果想要更贴近Logcat的格式,或者需要简单过滤,可以自己写个轻量的测试日志工具,替代Android原生的Log类:

object TestLogger {
    fun debug(tag: String, message: String) {
        println("[DEBUG] $tag: $message")
    }

    fun error(tag: String, message: String) {
        println("[ERROR] $tag: $message")
    }
    // 按需添加warn、info等方法
}

在单元测试里用TestLogger.debug("TAG", "测试输出")替代Log.d(),输出会清晰显示在Run窗口中。

为什么你之前的方案没用

  • 伴生对象加@JvmStatic:只是解决Java代码调用Kotlin伴生方法的兼容性问题,完全不改变日志的输出目标
  • build.gradle的testOptions配置:一般用来设置测试的JVM参数、覆盖率等,和日志输出无关
  • 自定义MyLog类:如果你的自定义类底层还是调用了android.util.Log,那在本地单元测试环境中,Android框架的Log实现是空实现(没有Android系统支持),不会产生任何输出

补充区分测试类型

  • 本地单元测试:src/test/java,本地JVM运行,日志看Run窗口
  • 仪器化测试:src/androidTest/java,在设备/模拟器上运行,这类测试的Log.*输出可以在Logcat中看到

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 18:12:41