使用Java(Android的,但是这是一个Java问题)我已经创建了应用程序类一个默认的异常处理这样或多或少这是从一些SO取线程:Crashlytics在Android的 - 如何捕获所有异常/崩溃在一个地方
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
AppInitialization();
}
private void AppInitialization() {
defaultUEH = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(_unCaughtExceptionHandler);
}
private UncaughtExceptionHandler defaultUEH;
// handler listener
private Thread.UncaughtExceptionHandler _unCaughtExceptionHandler = new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
ex.printStackTrace();
// TODO handle exception here
}
};
}
让我们谈谈我的目标是什么。我需要为crashLytics崩溃报告记录额外的信息。所以无论何时发生异常,都会调用hook uncaughtException(Thread thread,Throwable ex)。我认为这将适用于崩溃和异常(不确定)。在这个
3个问题:
这会不会影响crashLytics因为即时通讯overrding默认的异常处理程序是如何工作的。
这会不会让该应用继续 - 我不希望这样。我只想在其他地方记录异常并让它继续,就好像defaultexceptionHandler不存在一样。否则,QA回归将很难看到错误,所以我们可以修复它们。如果我从内uncaughtException(螺纹,EX)调用defaultUEH.uncaughtException(螺纹,前)将其不断循环?
与相关的是,setDefaultUncaughtExceptionHandler什么的线程?这是否适用于所有线程或例如主线程?
所以要清楚,我需要一种方式来发送每个crashlytics崩溃/异常的附加信息。怎么样 ?
更新:我看到here有人找到了解决方法,但使用这种方法并使其crashlytics报告致命问题呢?
只是想知道 - 什么样的附加你需要什么信息? – maxoumime
我想发送崩溃的业务逻辑。例如,应用程序状态像(令牌的UUID,在当前选项卡存在)的东西,可以更容易地重现该问题。 – j2emanue
我看,你有没有使用'Crashlytics.log'考虑?通过这种方式,您可以准备与崩溃一起发送的日志,例如应用中的用户行为,他打开的活动,他选择的标签......只是一个念头 – maxoumime