我希望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实例时发生空指针异常。
答案 0 :(得分:0)
我发现了问题。
Application Constructor中的上下文仍然为null,必须在onCreate中调用:
@Override
public void onCreate ()
{
googleAnalytics = GoogleAnalytics.getInstance(this);
googleAnalytics.setDefaultTracker(googleAnalytics.getTracker("UA-300957-15"));
Thread.setDefaultUncaughtExceptionHandler(this);
}