我应该在哪里提供以下代码来报告未捕获的异常?
UncaughtExceptionHandler myHandler = new ExceptionReporter(
myTracker, // Currently used Tracker.
Thread.getDefaultUncaughtExceptionHandler(), // Current default uncaught exception handler.
context); // Context of the application.
// Make myHandler the new default uncaught exception handler.
Thread.setDefaultUncaughtExceptionHandler(myHandler);
我在onCreate()方法中为我的活动创建了一个跟踪器后立即包含了这些行。我看到未捕获的异常有效并且它打印在我的logcat
中04-11 16:10:48.024: V/GAV3(13644): Thread[main,5,main]: Tracking Exception: StringIndexOutOfBoundsException (@MainActivity:onConnect:196) {main}
04-11 16:10:48.024: V/GAV3(13644): Thread[main,5,main]: Dispatch call queued. Dispatch will run once initialization is complete.
04-11 16:10:48.024: V/GAV3(13644): Thread[main,5,main]: Passing exception to original handler.
04-11 16:10:48.024: E/AndroidRuntime(13644): FATAL EXCEPTION: main
....
但是我没有在我的帐户中找到它(财产的观点)。我在onCreate()中的代码创建了一个跟踪器
Tracker mainActivityTracker=((ADMPApplication)this.getApplication()).getTracker(TrackerName.APP_TRACKER,this);
mainActivityTracker.setScreenName("MainActivity");
// Send a screen view.
mainActivityTracker.send(new HitBuilders.AppViewBuilder().build());
// analytics.dispatchLocalHits();
UncaughtExceptionHandler myHandler = new ExceptionReporter(mainActivityTracker,Thread.getDefaultUncaughtExceptionHandler(),this);
Thread.setDefaultUncaughtExceptionHandler(myHandler);
我收到了setScreenname()的通知。但没有报告崩溃报告。我错过了什么?请帮助我?
答案 0 :(得分:0)
据我所知,你应该在你的应用程序的Application
类的onCreate()函数中实现它
@Override
public void onCreate() {
Tracker currentTracker = getTracker(AppConfiguration.TrackerName.APP_TRACKER);
Thread.UncaughtExceptionHandler uncaughtExceptionHandler = new ExceptionReporter(currentTracker,Thread.getDefaultUncaughtExceptionHandler(),this);
Thread.setDefaultUncaughtExceptionHandler(uncaughtExceptionHandler);
}
答案 1 :(得分:0)
实际上,这似乎是Google Play服务中的一个错误 - 请参阅:https://code.google.com/p/analytics-issues/issues/detail?id=443。 非常不幸的是,问题仍然没有解决,你可以尝试恢复使用GA v3。
为了记录,我还在我的两台使用GPS> = 4.4.52的设备上观察到同样的问题(除了例外情况之外的一切),但奇怪的是没有安装GPS的另一台设备(在这种情况下)它只是在输入后立即按下它们。)