【问题标题】:How can I find out why my app crashes if logcat show no reason?如果 logcat 没有显示原因,我如何找出我的应用程序崩溃的原因?
【发布时间】:2021-11-05 23:00:03
【问题描述】:

我有一个应用程序在后台处理一些 pdf 文件,但它突然崩溃,没有“由”描述。尝试使用真实设备、新模拟器、重启电脑等。 以前从未有过什么,我不知道从哪里寻找根本原因。

编辑:我发现问题出在 try/catch 块中

try {
val pdfReader = PdfReader(URL(it))
//process
pdfReader.close()
} catch(e: FileNotFoundException){
//process exception
}

所以问题出在错误异常中,当我切换到更一般的异常时,我可以处理它并在 logcat 中看到错误

try {
val pdfReader = PdfReader(URL(it))
//process
pdfReader.close()
} catch(e: Exception){
//process exception
}

【问题讨论】:

  • 尝试调试。
  • 我试过了,没有发现异常
  • 您是在使用第三方库还是将一些操作交给第三方库处理。能不能调试一下,看看那个进出库是否顺畅?

标签: android kotlin


【解决方案1】:

如果您使用的是 iTextPdf,据我所知,它有时会无缘无故地抛出 NoClassDefFoundError。也许捕获此错误而不是异常可以帮助您识别问题。像这样:

try
{
  // do stuff
}
catch (Error err) //or NoClassDefFoundError
{
  System.err.println(err.getMessage());
}

【讨论】:

  • 这不是我问题的解决方案,但对我来说是一个线索,问题出在 try catch 块中,我将编辑我的问题以提供解决方案。谢谢!
  • 你永远不应该抓住Errorstackoverflow.com/a/11018879/6296561 -- NoClassDefFoundError 指示编译时需要修复的严重问题。不要抓住、忽略和假装它不存在。 修复。
  • 你们都对,错误并不意味着被捕获,我的解决方案也不是解决方案。这是一个建议,因为我以前遇到过这种问题。如果有一个 class not found 错误,你真的应该查看那个库或 android os 本身。
猜你喜欢
  • 2012-03-04
  • 1970-01-01
  • 2014-12-01
  • 2019-05-05
  • 2018-07-15
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多