没有堆栈跟踪的Kotlin / Android应用程序崩溃

时间:2020-03-18 11:57:01

标签: android kotlin kotlin-coroutines

我遇到了这样一种情况,即在协程中运行的任何内容(数据库查询,网络请求或响应处理)在某个时间点失败,只是使应用程序崩溃而根本没有任何日志。是预期的行为还是我配置错误?

这里是一段简单的代码,可以重现该错误。 不同的调度程序没有任何变化。

Code

这是我获得的唯一输出,其次是应用终止

Output

这些是我正在使用的依赖项,是撰写本文时的最新版本。

Dependencies

它也可以在没有Android框架的简单CLI应用程序中重现。

编辑:只是为了清楚起见。我并不想看到我抛出的异常。当我的应用由于未知原因而崩溃时,我试图获得一些输出。

Edit2:为更加清楚起见,这是没有任何“ throw”语句的情况的另一个示例。

Scenario 2

Output 2

1 个答案:

答案 0 :(得分:1)

由于协程内部发生异常,因此也可以在协程中找到异常。只需将其用try / catch包围起来,您就会发现神奇的地方:

GlobalScope.launch{
  try{
   print("Your printing message")
   throw Exception("Message here")
  }catch(exception: Exception){
   exception.printStacktrace()
   }
 }