【发布时间】:2019-01-24 14:52:54
【问题描述】:
对于任何使用异步 API 的人来说,这是一个非常熟悉的问题:当您的调用遇到故障时,异步库的私有线程会检测到它,创建一个异常对象,并将其传递给您的回调。该异常中唯一值得一分钱的信息是它的消息,可能还有它的类型。堆栈跟踪毫无价值。
与 Google Play 报告应用程序崩溃的方式相得益彰:消息被剥离,您得到的只是堆栈跟踪。现在你什么都没有了。您只知道您的应用有一个您在自己的测试中没有发现的错误。
Kotlin 的协程至少给了我们一些希望,希望它可以变得更好。协程堆栈跟踪在概念上就在那里,只是难以提取。但是,目前我们得到的堆栈跟踪和我上面描述的一样,没用。
我熟悉kotlinx-coroutines-debug 模块,并且我看到在实现方面有一些规定可以重新创建协程堆栈跟踪,但是如何在安装在用户智能手机上的生产应用程序中使用这些设施?
【问题讨论】:
标签: android kotlin kotlin-coroutines