我的公司正在开发一个复杂的Android项目,这在谷歌播放中是不可用的。他们销售已安装应用程序的平板电脑,并通过我们的ftp进行更新。
最近我们开始在现场发生一些零星的崩溃,这在平板电脑连接到计算机时从未发生过(所以我永远看不到logcat)。所以我实现了一个崩溃报告系统,它通过电子邮件发送logcat文件和崩溃报告,在主要活动的onCreate中调用了uncaughtExceptionHandler:
protected void onCreate(Bundle savedInstanceState) {
Thread.setDefaultUncaughtExceptionHandler(handleAppCrash);
super.onCreate(savedInstanceState);
}
private Thread.UncaughtExceptionHandler handleAppCrash = new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
#crash report stuff here
};
};
尽管几乎所有的崩溃都被这种方法所困扰,但我正在寻找的特定和零星的崩溃并非如此。出现'app has stopped'对话框,但从不调用此方法。在此之后我开始使用Splunk Mint(http://www.splunk.com/en_us/homepage.html),希望库更强大,但我有完全相同的行为。
所以我的问题是:这个uncaughtExceptionHandler没有捕获哪种类型的崩溃?可能是Java本身的崩溃?有没有办法解决这个问题,以了解崩溃的来源?
谢谢!