Bu dokümanda Android SDK'nın eski bir sürümü açıklanmaktadır. Analytics'te yeniyseniz en son SDK'yı kullanın. Daha fazla bilgi

Çökmeler ve İstisnalar

Bu dokümanda, Android için Google Analytics SDK v4 kullanılarak kilitlenme ve istisna ölçümüne üst düzey genel bakış sunulmaktadır.

Genel bakış

Kilitlenme ve istisna ölçümü, uygulamanızda yakalanan ve yakalanmayan kilitlenmelerin ve istisnaların sayısını ve türünü ölçmenize olanak tanır. İstisnalar şu alanlardadır:

Alan adı Tür Zorunlu Açıklama
Açıklama String Hayır İstisnayla ilgili açıklama (en fazla 100 karakter). null kabul edilir.
Hayati boolean Evet İstisnanın önemli olup olmadığını gösterir. true önemli olduğunu gösterir.

Kilitlenme ve istisna verileri öncelikle Crash and Exceptions raporunda kilitlenir.

Yakalanan İstisnalar

Veri isteği sırasında ağ bağlantısının zaman zaman zaman aşımına uğraması gibi yakalanan istisnalar, uygulamanızda kod kullanarak yaptığınız hatalardır.

İzleyicide istisna alanı değerlerini ayarlayıp isabeti göndererek, yakalanan bir istisnayı ölçün. Örnek:

// Get tracker.
Tracker t =
    ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(TrackerName.APP_TRACKER);

// Build and send exception.
t.send(new HitBuilders.ExceptionBuilder()
    .setDescription(getExceptionMethod() + ":" + getExceptionLocation())
    .setFatal(getExceptionFatal())
    .build());

getTracker yöntemiyle ilgili ayrıntılı bilgi için Gelişmiş Yapılandırma konusuna bakın.

Yakalanmayan İstisna Ölçümü

Yakalanmamış istisnalar, uygulamanızın çalışma zamanında beklenmeyen koşullarla karşılaştığı ve genellikle önemli olduğu durumları temsil eder. Bu durum, uygulamanın kilitlenmesine neden olur. ga_reportUncaughtExceptions yapılandırma değeri ayarlanarak veya ExceptionReporter sınıfı kullanılarak, yakalanmayan istisnalar Google Analytics'e otomatik olarak gönderilebilir.

Otomatik Yapılandırma

Uygulamanızdaki yakalanmamış tüm istisnaları otomatik olarak Google Analytics'e göndermek için bu satırı XML yapılandırma dosyanıza ekleyin:

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

Otomatik istisna ölçümü kullanılarak istisnai bir istisna gönderildikten sonra istisna, Thread&hl=tr varsayılan istisna işleyicisine geçirilir.

Gelişmiş Uygulama Kullanma

Gelişmiş bir uygulama kullanıyor ve ga_reportUncaughtExceptions yapılandırma değerini kullanmıyorsanız otomatik olarak yakalanmayan istisna ölçümünü uygulamak için ExceptionReporter sınıfını kullanın.

ExceptionReporter, belirli bir ileti dizisi veya uygulamanızdaki tüm ileti dizileri için varsayılan yakalanmamış istisna işleyici olarak görev yapabilir. Google Analytics'e bir istisna gönderdikten sonra ExceptionReporter sınıfı, istisnayı sizin sağladığınız yakalanmamış bir istisna işleyiciye iletebilir.

Aşağıdaki kod yeni bir ExceptionReporter nesnesi oluşturur ve bunu yeni yakalanmamış yeni istisna işleyici olarak ayarlar. Sonuç olarak, yakalanmamış her istisna Google Analytics'e gönderilir ve daha önce yakalanmamış olan önceki istisna işleyiciye aktarılır. Çoğu uygulama için varsayılan işleyici, istisnayı günlüğe kaydeder ve uygulamayı sonlandırır.

Thread.UncaughtExceptionHandler myHandler = new ExceptionReporter(
    myTracker,
    Thread.getDefaultUncaughtExceptionHandler(),
    context);

// Make myHandler the new default uncaught exception handler.
Thread.setDefaultUncaughtExceptionHandler(myHandler);

Otomatik istisna ölçümünü kullanırken aşağıdakileri göz önünde bulundurun:

  • Otomatik istisna ölçümü kullanılarak gönderilen tüm istisnalar, Google Analytics'te önemli olarak raporlanır.
  • Açıklama alanı varsayılan olarak istisna türü, sınıf adı, yöntem adı ve ileti dizisi adı kullanılarak otomatik olarak ayarlanır.

İstisna Açıklamalarını Ayrıştırma

SDK, istisna açıklamalarını alma ve Google Analytics'e gönderme işlemini basitleştirmek için bir StandardExceptionParser sağlar:

// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);

// Using StandardExceptionParser to get an Exception description.
try {
    // Request some scores from the network.
    ArrayList<Integer> highScores = getHighScoresFromCloud();
} catch (IOException e) {
    t.send(new HitBuilders.ExceptionBuilder()
        .setDescription(new StandardExceptionParser(this, null)
            .getDescription(Thread.currentThread().getName(), e))
        .setFatal(false)
        .build()
    );

    ... // Display alert to user that high scores are currently unavailable.
}

Ayrıca, Google Analytics'e istisna gönderirken ExceptionParser arayüzünü uygulayıp setDescription yöntemini çağırarak kendi ayrıştırıcınızı da uygulayabilirsiniz.