在应用程序类中获取GoogleAnalytics实例

时间:2013-07-02 13:43:45

标签: android

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

我认为默认情况下,EasyTrakcer会捕获活动未捕获的异常。

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

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实例时发生空指针异常。

1 个答案:

答案 0 :(得分:0)

我发现了问题。

Application Constructor中的上下文仍然为null,必须在onCreate中调用:

@Override
public void onCreate ()
{
    googleAnalytics = GoogleAnalytics.getInstance(this);
    googleAnalytics.setDefaultTracker(googleAnalytics.getTracker("UA-300957-15"));
    Thread.setDefaultUncaughtExceptionHandler(this);
}