获取AndroidRuntime:致命异常:没有其他堆栈跟踪的DefaultDispatcher-worker-1



当使用Reform和Coroutines从API获取数据时,我有时会在Logcat中遇到应用程序崩溃,除了以下内容之外没有堆栈跟踪:AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-1

这通常是由于Reform抛出常见异常(如UnknownHostException((如果没有Internet(,而如果您没有指定CoroutineExceptionHandler,则协程会吞下该异常。

因此,在您的启动代码中添加一个协程异常处理程序,如下所示:

val coroutineExceptionHandler = CoroutineExceptionHandler{_, throwable ->
throwable.printStackTrace()
}
fun getFromApi() {
viewModelScope.launch(Dispatchers.IO + coroutineExceptionHandler) {
retrofitService.getStuffFromInternet()
}
}

请注意,这只是将错误记录到Logcat中,这样您就可以看到丢失的stacktrace。你仍然需要弄清楚是什么原因造成的。

我多次遇到这种类型的错误,对我来说有效的方法是从模拟器中卸载应用程序,然后重新安装。

默认Dispatcher Worker-1或默认Dispatch Worker-3,我不知道这些错误的原因,但我认为这是您正在使用的模拟器设备有问题,或者如果您导入了其他项目并在该模拟器设备上运行,那么稍后您可能会看到此错误。

您可以做些什么来解决此问题:只需创建一个新的模拟器设备或使用一个物理设备

检查端点是否正确。我遇到了这个问题,并通过这种方式解决

确保模拟器/手机未处于飞行模式

最新更新