从 Android Studio 运行 Android 应用程序时如何启用协程调试模式?

2024-04-23

我在通过 Android Studio 以调试模式运行 Android 应用程序时遇到协程异常。

kotlinx.coroutines.JobCancellationException:StandaloneCoroutine 已取消

来自协程调试文档 https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/topics/debugging.md#debug-mode,我认为我可以通过启用来获得更完整的堆栈跟踪信息调试模式协程。

它可以通过设置系统属性 DEBUG_PROPERTY_NAME 或通过运行带有启用断言(-ea 标志)的 Java 来启用。

这就是我被困住的地方。在 Android Studio 中实现此目的的惯用方法是什么?我的项目是使用 Gradle 配置的,并且在 Windows 上运行。理想情况下,有一种方法可以通过 Gradle 配置进行配置,以便任何通过源代码控制拉入此项目的人都可以启用协程调试模式。


我还没有找到通过 Android studio 或 Gradle 进行配置的方法。有关这样做的信息对我仍然有用。但是,以下内容已被验证有效;我得到了完整的堆栈跟踪。

“系统属性”是指Java 系统属性 https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html。它们可以在运行时使用设置System.setProperty.

因此,我将以下代码添加到我的开头Application.onCreate().

override fun onCreate() {
    // Enable coroutines debug mode in debug builds.
    if (BuildConfig.DEBUG) {
        System.setProperty(
            kotlinx.coroutines.DEBUG_PROPERTY_NAME,
            kotlinx.coroutines.DEBUG_PROPERTY_VALUE_ON
        )
    }

    ...

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Android Studio 运行 Android 应用程序时如何启用协程调试模式? 的相关文章

随机推荐