ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android-Google Analytics(分析)两次发送未捕获的异常

2019-11-21 20:29:26  阅读:210  来源: 互联网

标签:exception google-analytics android


为了将未捕获的异常的堆栈跟踪信息包含到Google Analytics(分析)中,我将默认的ExceptionParser替换为自定义的ExceptionParser.
现在,我获得了带有stackstrace的异常的另一个报表,该报表具有不带stacktrace的异常(默认值).我究竟做错了什么?

public class AnalyticsHelper
{
    /**
    * This method is called in my Application#onCreate(..)
    **/
    public static void initAnalytics(Context c)
    {
        GoogleAnalytics analytics = GoogleAnalytics.getInstance(c);
        analytics.setAppOptOut(PreferenceManager.getDefaultSharedPreferences(c).getBoolean(PreferencesActivity.KEY_ANAYLTICS_OPT_OUT, false));

        // setting uncaught exception handler
        ExceptionReporter reporter = new ExceptionReporter(analytics.getInstance(c).newTracker(R.xml.tracker), Thread.getDefaultUncaughtExceptionHandler(), c);
        reporter.setExceptionParser(new ExceptionParser()
        {
            @Override
            public String getDescription(String p_thread, Throwable throwable)
            {
                StringWriter trace = new StringWriter();
                throwable.printStackTrace(new PrintWriter(trace));
                String stacktrace = trace.toString();

                String message = (throwable.getMessage() == null) ? "no message" : throwable.getMessage();
                return "Message: " + message
                        + ", Stacktrace: " + stacktrace;
            }
        });

        Thread.setDefaultUncaughtExceptionHandler(reporter);
    }
}

tracker.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
           tools:ignore="TypographyDashes">
    <integer name="ga_sessionTimeout">300</integer>
    <bool name="ga_reportUncaughtExceptions">true</bool>
    <bool name="ga_autoActivityTracking">false</bool>
    <integer name="ga_dispatchPeriod">5</integer>
    <string name="ga_trackingId">XXXXXX</string>
</resources>

解决方法:

Google Analytics document

To automatically send all uncaught exceptions in your app using EasyTracker, add this line to your analytics.xml file:

<bool name="ga_reportUncaughtExceptions">true</bool>

After sending an exception using automatic exception measurement, EasyTracker will pass the exception on to the Thread’s default exception handler.

通过将ga_reportUncaughtExceptions设置为true,跟踪程序将自动发送异常,因此您获得了一份额外的报告,而没有stacktrace.删除它,您将只获得一份报告.

标签:exception,google-analytics,android
来源: https://codeday.me/bug/20191121/2054219.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有