ブロードキャスト レシーバー、サービス、および含まれるライブラリなど、アプリを通じてキャッチされていないすべての例外を 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 アナリティクス インスタンスを取得しようとすると、null ポインター例外が発生することです。