【问题标题】:How to enable coroutine debug mode when running an Android App from Android Studio?从 Android Studio 运行 Android App 时如何启用协程调试模式?
【发布时间】:2021-09-12 18:38:18
【问题描述】:

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

kotlinx.coroutines.JobCancellationException: StandaloneCoroutine 被取消

coroutines debugging documentation 得知,通过启用协程的调试模式,我可能会获得更完整的堆栈跟踪信息。

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

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

【问题讨论】:

    标签: android-studio kotlin gradle kotlin-coroutines


    【解决方案1】:

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

    “系统属性”指的是Java System Properties。它们可以在运行时使用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
            )
        }
    
        ...
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      • 2014-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多