提问人:NullPointer 提问时间:6/21/2018 最后编辑:KushalNullPointer 更新时间:11/14/2022 访问量:4591
在 Android 中调试 Kotlins 协程
Debug Kotlins coroutines in Android
问:
是否可以在 Android 中调试协程?当我尝试调试此代码片段时:
runBlocking {
try {
async(CommonPool) {
showLoadingIndicator()
val a = loadData().await()
hideLoadingIndicator()
}
} catch (e: Exception) {
Log.e("lala", "exception " + e.toString())
}
}
val a
具有以下消息:Cannot find local variable: name = a
在我的应用程序中,我设置了协程调试的属性,如下所示:
System.setProperty("kotlinx.coroutines.debug", if (BuildConfig.DEBUG) "on" else "off")
还是不行。现在我不知道在使用协程时如何使用调试器。 你们可以帮帮我吗?
提前致谢
阿尔班
答:
-1赞
Gergely Hegedus
2/16/2022
#1
我通常会添加一行,这样如果我停在那里,就需要在那里,这样我就可以验证它的值。System.err.println(a)
a
不是真正可扩展的,但对于调试来说,它对我有用。
0赞
AndroidEngineX
11/14/2022
#2
我倾向于不在该点添加调试点,因为那是更改代码的地方。相反,在某个 lambda 中添加调试器,可能在 内部或内部。suspend
coroutine
coroutineScope
suspend fun
此外,您还可以在 android 或 Java 项目中添加,以获取有关代码执行的一些信息。Log.d("CoroutineDebug", "your message")
println
顺便说一句,https://youtrack.jetbrains.com/issue/KT-22296 和 https://youtrack.jetbrains.com/issue/KT-25076 的问题已经关闭。因此,您将能够在调试时轻松评估变量
评论
kotlinx.coroutines.debug