IR4*_*R42 5 logcat kotlin android-studio kotlin-coroutines
它仅显示I/Process: Sending signal. PID: xxxxx SIG: 9
我尝试过启用调试模式
System.setProperty(DEBUG_PROPERTY_NAME, DEBUG_PROPERTY_VALUE_ON)
Run Code Online (Sandbox Code Playgroud)
但这没有帮助
我前段时间也遇到过这个问题。解决方法之一是使用CoroutineExceptionHandler. 您可以创建一个处理程序来打印堆栈跟踪,如下所示。
val exceptionHandler = CoroutineExceptionHandler { _, ex ->
Log.e("CoroutineScope", "Caught ${Log.getStackTraceString(ex)}")
}
Run Code Online (Sandbox Code Playgroud)
然后您可以将协程启动为someCoroutineScope.launch(exceptionHandler) {}.
此外,如果您不想在发布模式下使用处理程序,那么您可以创建自己的自定义协程启动器作为扩展函数。
fun CoroutineScope.launchCustom(block: suspend CoroutineScope.() -> Unit) : Job {
return if (BuildConfig.DEBUG) {
this.launch(exceptionHandler) {
block()
}
} else {
this.launch {
block()
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
933 次 |
| 最近记录: |