我在每个活动中都使用这个:
@Override
public void onStart() {
super.onStart();
EasyTracker.getInstance().activityStart(this);
}
@Override
public void onStop() {
super.onStop();
EasyTracker.getInstance().activityStop(this);
}
并浏览此doc
我发现了
使用EasyTracker
要使用EasyTracker自动跟踪应用程序中所有未捕获的异常,请将此行添加到您的analytics.xml文件中:
<bool name="ga_reportUncaughtExceptions">true</bool>
使用自动异常跟踪跟踪异常后,EasyTracker会将异常传递给Thread的默认异常处理程序。
使用自动例外跟踪时,请注意以下事项:
但是当我收到UncaughtException并且应用程序崩溃时,在Google Analytics描述中,它只显示:
An error occured while executing doInBackground()
不是上面提到的堆栈跟踪。什么东西需要添加?
谢谢
答案 0 :(得分:4)
我使用名为ACRA的开源工具进行未捕获的异常报告。 它提供了比Google Analytics或Flurry更多的信息,并向Google文档提交报告,您可以为每个报告添加电子邮件通知。
我使用谷歌分析。
答案 1 :(得分:3)
您应该使用自定义异常解析器来获取整个堆栈跟踪
import org.apache.commons.lang3.exception.ExceptionUtils;
import com.google.analytics.tracking.android.ExceptionParser;
public class AnalyticsExceptionParser implements ExceptionParser {
public String getDescription(String p_thread, Throwable p_throwable) {
return "Thread: " + p_thread + ", Exception: " + ExceptionUtils.getStackTrace(p_throwable);
}
}
并在您的活动中将其设置为默认值,例如
public void setupGoogleAnalyticsCrashReportParser() {
EasyTracker.getInstance().setContext(this);
Thread.UncaughtExceptionHandler uncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
if (uncaughtExceptionHandler instanceof ExceptionReporter) {
ExceptionReporter exceptionReporter = (ExceptionReporter) uncaughtExceptionHandler;
exceptionReporter.setExceptionParser(new AnalyticsExceptionParser());
}
}
希望这对某人有帮助。