0

我希望 Google Anlytics 通过我的应用程序捕获所有未捕获的异常,例如广播接收器、服务和包含的任何库。

我认为默认情况下 EasyTrakcer 会捕获 Activity Uncaught Exception。

因此,我决定在我的基础应用程序类中定义一个未捕获的异常处理程序并将异常发送到那里。这是我的代码:

import android.app.Application;
import android.util.Log;
import com.google.analytics.tracking.android.GoogleAnalytics;

public class ApplicationMain extends Application implements Thread.UncaughtExceptionHandler
{

    private GoogleAnalytics googleAnalytics;

    public ApplicationMain()
    {
        googleAnalytics = GoogleAnalytics.getInstance(this); // EXCEPTION OCCURS
        googleAnalytics.setDefaultTracker(googleAnalytics.getTracker("UA-300957-15"));
        Thread.setDefaultUncaughtExceptionHandler(this);
    }

    public void uncaughtException(Thread thread, Throwable throwable)
    {
        googleAnalytics.getDefaultTracker().sendException(throwable.getMessage(), throwable, true);
        System.exit(0);
    }
}

问题是尝试使用应用程序上下文获取 Google Analytics 实例时发生空指针异常。

4

1 回答 1

0

我解决了这个问题。

Application Constructor中context依然为null,必须在onCreate中调用:

@Override
public void onCreate ()
{
    googleAnalytics = GoogleAnalytics.getInstance(this);
    googleAnalytics.setDefaultTracker(googleAnalytics.getTracker("UA-300957-15"));
    Thread.setDefaultUncaughtExceptionHandler(this);
}
于 2013-07-02T14:22:22.163 回答