Android 崩溃堆栈跟踪丢失
我正在我的应用程序中使用谷歌分析(最新版本)。因为我把它包括在项目中,所以我不能在终端中看到未捕获的异常,但一天后我可以在分析控制台中看到。在其他项目中,默认情况下我可以正常看到堆栈跟踪。 我在设置中对处理程序使用以下代码:Android 崩溃堆栈跟踪丢失,android,google-analytics,stack-trace,Android,Google Analytics,Stack Trace,我正在我的应用程序中使用谷歌分析(最新版本)。因为我把它包括在项目中,所以我不能在终端中看到未捕获的异常,但一天后我可以在分析控制台中看到。在其他项目中,默认情况下我可以正常看到堆栈跟踪。 我在设置中对处理程序使用以下代码: Thread.UncaughtExceptionHandler myHandler = new ExceptionReporter( tracker, Thread.getDefaultUncaughtExceptio
Thread.UncaughtExceptionHandler myHandler = new ExceptionReporter(
tracker,
Thread.getDefaultUncaughtExceptionHandler(),
this);
ExceptionReporter exceptionReporter = (ExceptionReporter) myHandler;
exceptionReporter.setExceptionParser(new AnalyticsExceptionParser());
public class AnalyticsExceptionParser implements ExceptionParser {
public String getDescription(String p_thread, Throwable p_throwable) {
return "Thread: " + p_thread + ", Exception: " + ExceptionUtils.getStackTrace(p_throwable);
}
}
和AnalyticSeceptionParser在设置中建议使用:
Thread.UncaughtExceptionHandler myHandler = new ExceptionReporter(
tracker,
Thread.getDefaultUncaughtExceptionHandler(),
this);
ExceptionReporter exceptionReporter = (ExceptionReporter) myHandler;
exceptionReporter.setExceptionParser(new AnalyticsExceptionParser());
public class AnalyticsExceptionParser implements ExceptionParser {
public String getDescription(String p_thread, Throwable p_throwable) {
return "Thread: " + p_thread + ", Exception: " + ExceptionUtils.getStackTrace(p_throwable);
}
}
有人知道会有什么问题吗?我设法解决了这个问题。在创建了这个新的处理程序之后,我得到了这两行代码
ExceptionReporter exceptionReporter = (ExceptionReporter) myHandler;
exceptionReporter.setExceptionParser(new AnalyticsExceptionParser());
不知何故,这两行使默认处理程序无效,如果没有这两行,默认处理程序可以正常工作。我不确定这将如何影响向GA报告异常情况。我无法重现这一点-您可能会在日志视图上设置一个过滤器吗?不,正如我所说,在没有分析的应用程序上,它工作正常。已处理的异常情况显示在日志中。(使用e.printstacktrace)实例中的“Thread.getDefaultUncaughtExceptionHandler()”调用似乎没有检索默认处理程序。这是一个相当复杂的问题。我能通过实现我的自定义处理程序来解决它吗?这真的很奇怪。