Android平台Kotlin协程栈追踪恢复失效问题求助
Kotlin协程栈追踪恢复失效问题(Android平台)
我在Android平台使用Kotlin协程的Stacktrace recovery功能时遇到问题,已按照官方文档要求在Application类的onCreate方法中执行System.setProperty("kotlinx.coroutines.debug", "on");开启debug模式,但无论如何操作该功能都未生效。
示例代码
class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) runBlocking { callerFunction1() } } fun callerFunction1() { CoroutineScope(Dispatchers.Main + CoroutineName("Caller1")).launch { intermediateFunction1() } } suspend fun intermediateFunction1() { delay(100) intermediateFunction3() } suspend fun intermediateFunction2() { delay(100) crashFunction() }
当前生成的栈追踪仅保留crashFunction的调用信息,无上层调用者记录。请问是否可以获取crashFunction -> intermediateFunction2 -> intermediateFunction1的完整调用链?
已尝试的方案
- 使用Coroutine ExceptionHandler
- 在顶层添加try-catch
- 实现CopiableThrowable的自定义异常
- 使用IllegalStateException等其他异常类型
环境信息
- Android平台
- 标准Debug构建,未启用Proguard或R8
- Kotlin版本2.0.0
- 协程版本1.8.1
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

