使用Easytracker进行谷歌分析时未捕获的异常

时间:2013-01-02 06:48:43

标签: android google-analytics easytracker

我在每个活动中都使用这个:

@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的默认异常处理程序。

使用自动例外跟踪时,请注意以下事项:

  1. 报告通过自动异常跟踪跟踪的所有异常 在谷歌分析中是致命的。
  2. 使用堆栈自动填充描述字段 跟踪。
  3. 但是当我收到UncaughtException并且应用程序崩溃时,在Google Analytics描述中,它只显示:

    An error occured while executing doInBackground()
    

    不是上面提到的堆栈跟踪。什么东西需要添加?

    谢谢

2 个答案:

答案 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());
    }
}

希望这对某人有帮助。