为什么 StrictMode 日志记录不会在 Marshmallow 设备上输出?

Why is StrictMode logging not being output on a Marshmallow device?

代码,调用自Application.onCreate()

private fun enableOnStrictMode() {
    StrictMode.setThreadPolicy(
            StrictMode
                    .ThreadPolicy
                    .Builder()
                    .detectAll()
                    .penaltyLog()
                    .build())
    StrictMode.setVmPolicy(
            StrictMode
                    .VmPolicy
                    .Builder()
                    .detectAll()
                    .penaltyLog()
                    .build())
}

这在 Android 9.0 Pie 设备上工作得很好,并输出几乎一打违反政策的行为,包括未标记的网络请求和磁盘读取。但是当 运行 Marshmallow 设备(Samsung J5 Android 6.0)上的相同代码时 StrictMode 不输出任何日志记录,即使假设违规行为仍在发生似乎是合理的。

StrictMode 配置是否有可能导致 Android 6.0 Marshmallow 无输出?

某些检测仅适用于更高的 API 版本。

例如,API 26 级 (Android O) added detectUntaggedSocketsdetectUnbufferedIo.

但是,detectDiskReads 应该可用 starting with API level 9