在通过Android以调试模式运行我的Android应用程序时,我得到了一个协同异常。
kotlinx.coroutines.JobCancellationException: StandaloneCoroutine被取消了
从协同调试文档中,我可以通过启用协同调试模式来获得更完整的堆栈跟踪信息。
可以通过设置系统属性DEBUG_PROPERTY_NAME或使用启用断言(-ea标志)运行Java来启用它。
这就是我被困的地方。在Android中实现这一目标的惯用方法是什么?我的项目是使用Gradle配置的,我正在Windows上运行。理想情况下,有一种方法可以通过Gradle配置来配置它,以便为通过源代码控制参与此项目的任何人启用协同调试模式。
发布于 2021-07-01 12:25:16
我还没有找到通过Android或Gradle来配置它的方法。关于这样做的信息对我仍然是有用的。但是,验证了以下内容是否有效;我得到了一个完整的堆栈跟踪。
"system属性“指的是Java系统属性。可以使用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
)
}
...
}
https://stackoverflow.com/questions/68197547
复制相似问题