Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Bu sayfada, sorun gidermeyle ilgili yardım ve sık sorulan soruların yanıtlarını bulabilirsiniz.
sorular soracağım. Şu durumda:
Aradığınızı bulamıyorum veya daha fazla yardıma ihtiyacınız var,
Firebase desteği.
Genel sorun giderme/SSS
Farklı formatları görme
Sorunlar tablosundaki bazı sorunlar için (ve bazen "varyantlar")
Sorunlar tablonuzda listelenen sorunlar için iki farklı biçim görebilirsiniz
Firebase konsolunda yer alır. Ayrıca, hesabınızda gördüğünüz gibi
"varyantlar" en iyi uygulamaları anlatacağım. Bunun nedenleri aşağıda açıklanmıştır!
2023'ün başlarında, etkinlikleri farklı gruplar şeklinde gruplandırmak için iyileştirilmiş bir analiz motorunu kullanıma sunduk.
ayrıca yeni sorunlar için güncellenmiş bir tasarım ve bazı gelişmiş özelliklerin (ör.
ekleyin!). En son
blog yayını
bulabilirsiniz. Ancak, önemli noktalar için aşağıyı okuyabilirsiniz.
Crashlytics, uygulamanızdaki tüm etkinlikleri (kilitlenmeler, önemli olmayanlar ve
ve ANR'ler) oluşturur ve sorunlar adı verilen etkinlik grupları oluşturur. Tüm etkinlikler
ortak bir hata noktası bulunuyor.
Geliştirilmiş analiz motoru, etkinlikleri bu sorunlar altında gruplandırmak için artık
ve yığın izlemedeki çerçeveler (stack trace),
istisna mesajı, hata kodu ve diğer platform ya da hata türü
özellikler.
Ancak bu etkinlik grubunda, hataya neden olan yığın izlemeler
farklı olabilir. Farklı bir yığın izleme, farklı bir kök nedene işaret edebilir.
Bir sorun içindeki bu olası farkı temsil etmek için,
Sorunlar içindeki varyantlar: Her varyant, bir sorundaki etkinliklerin bir alt grubudur
aynı hata noktasına ve benzer bir yığın izlemeye sahip
olan. Varyantlarla,
bir sorundaki en yaygın yığın izlemelerde (stack trace) hata ayıklayabilir
farklı kök nedenler hataya yol açabilir.
Bu iyileştirmelerle neler yaşayacaksınız?
Sorun satırında gösterilen yenilenmiş meta veriler Uygulamanızdaki sorunları anlamak ve önceliklerini belirlemek artık daha kolay.
Daha az yinelenen sorun Satır numarası değişikliği yeni bir sorunla sonuçlanmaz.
Çeşitli temel nedenlerle ilgili karmaşık sorunlarda daha kolay hata ayıklama Bir sorundaki en yaygın yığın izlemelerde (stack trace) hata ayıklamak için varyantları kullanın.
Daha anlamlı uyarılar ve sinyaller Yeni sorun aslında yeni bir hatayı temsil ediyor.
Daha güçlü arama Her sorun daha fazla aranabilir meta veri içerir.
göz atabilirsiniz.
Bu iyileştirmelerin kullanıma sunulma şekli:
Uygulamanızdan yeni etkinlikler aldığımızda, bunların mevcut bir uygulamayla eşleşip eşleşmediğini kontrol ederiz
.
Eşleşme olmazsa daha akıllı etkinlik gruplama yöntemimizi otomatik olarak uygularız.
algoritmaya eklemeli ve yenilenen meta veriyle yeni bir sorun oluşturmalıdır
tasarım.
Bu, etkinlik grubumuzda yaptığımız ilk büyük güncellemedir. Şu durumda:
geri bildirimde bulunmak isterseniz veya herhangi bir sorunla karşılaşırsanız lütfen
bildirimde bulunabilirsiniz.
'nı inceleyin.
Görmüyorum
kilitlenme sorunu yaşanmayan metrikler ve/veya hız uyarıları
Kilitlenme sorunu yaşamayan kullanıcılar ve oturum sayısı gibi metrikleri görmüyorsanız
ve/veya hız uyarılarını kullandığınızdan emin olun:
Crashlytics SDK 18.6.0+ (veya Firebase BoM v32.6.0+) sürümü.
İçerik haritası günlükleri gösterilmiyor
Görmüyorsanız
içerik haritası günlükleri
Google Analytics için uygulamanızın yapılandırmasını kontrol etmenizi öneririz.
Aşağıdaki koşulları karşıladığınızdan emin olun:
.
Özellikle aşağıdaki dosyanın en az sürümünü kullandığınızdan emin olun:
Google Analytics için Firebase SDK'sı:
.
Android — v17.2.3+(BoM v24.7.1+).
Neden sadece ANR'ler
Android 11 ve sonraki sürümler için bildirildi mi?
Crashlytics, şu anda çalışan cihazlardaki Android uygulamaları için ANR raporlamasını destekler:
Android 11 ve sonraki sürümler. ANR'leri toplamak için kullandığımız temel API
(getHistoryProcessExitNedens)
SIGQUIT veya gözlemci temelli yaklaşımlardan daha güvenilirdir. Bu API
yalnızca Android 11 ve sonraki sürüme sahip cihazlarda kullanılabilir.
Bazı ANR'ler neden eksik?
BuildId'ları nasıl?
ANR'lerinizin bazılarında BuildId'leri eksikse aşağıdaki adımları uygulayarak sorunu giderin:
Güncel bir Crashlytics Android SDK'sı kullandığınızdan emin olun ve
Crashlytics Gradle eklentisi sürümü.
Android 11 ve bazı Android 12 ANR'leriniz için BuildId eksikse
eski bir SDK, Gradle eklentisi veya her ikisini birden kullanıyorsunuzdur.
Bu ANR'ler için BuildId öğelerini doğru şekilde toplamak üzere aşağıdakini kullanmanız gerekir
sürümler:
Crashlytics Gradle eklentisi 2.9.4 sürümü ve üzeri
Paylaşılan kitaplıklarınız için standart olmayan bir konum kullanıp kullanmadığınızı kontrol edin.
Yalnızca uygulamanızın paylaşılan kitaplıklarına aitBuildId eksikler varsa büyük olasılıkla
paylaşılan kitaplıklar için standart, varsayılan konumu kullanmadığınızı doğrulayın. Eğer
böyle bir durum söz konusuysa Crashlytics,
ilişkilendirilmiş BuildId Bu nedenle, standart
ortak kitaplıklar için konum.
Derleme işlemi sırasında BuildId'ları çıkarmadığınızdan emin olun.
Aşağıdaki sorun giderme ipuçlarının hem ANR'ler hem de yerel işlemler için geçerli olduğunu unutmayın.
kilitlenmelerine neden olabilir.
İkili dosyalarınızda readelf -n çalıştırarak BuildId öğelerinin olup olmadığını kontrol edin. Eğer
BuildId öğeleri eksik, ardından -Wl,--build-id
geliştirmenizi sağlar.
BuildId öğelerini yanlışlıkla kaldırmadığınızdan emin olun
kullanarak APK'nızın boyutunu küçültün.
Bir kitaplığın sadeleştirilmiş ve sadeleştirilmiş sürümlerini saklıyorsanız
kodunuzda doğru sürüme işaret edin.
Farklılıklar
ve Crashlytics kontrol panelindeki ANR raporları ile
Google Play Console
Google Play ile ANR sayısı arasında uyuşmazlık olabilir
Crashlytics. Analiz mekanizmalarındaki farklılık nedeniyle bu beklenen bir durumdur.
ANR verilerini toplayıp raporlamamıza yardımcı oluyor. Crashlytics, uygulama tarafından gerçekleştirildiğinde ANR'leri bildirir
Android vitals, ANR verilerini ANR gerçekleştikten sonra gönderir.
Ayrıca Crashlytics, yalnızca şu anda çalışan cihazlarda meydana gelen ANR'leri gösterir
Şu özelliklere sahip cihazlarda ANR'lerin gösterildiği Google Play ile karşılaştırıldığında: Android 11 ve sonraki sürümler
Google Play Hizmetleri ve veri toplama izni kabul edildi.
Farklılıklar
Crashlytics kontrol paneli ve logcat'teki NDK yığın izlemeleri arasında
LLVM ve GNU araç zincirleri, salt okunur özellik için farklı varsayılan ayarlara ve işlemlere sahiptir
tutarsız yığın izlemelere (stack trace) neden olabilecek şekilde
Firebase konsolunda yer alır. Bu sorunu azaltmak için aşağıdaki bağlayıcı flag'lerini ekleyin
uygulayın:
LLVM araç zincirinden lld bağlayıcısını kullanıyorsanız şunu ekleyin:
-Wl,--no-rosegment
GNU araç zincirinden ld.gold bağlayıcısını kullanıyorsanız şunu ekleyin:
-Wl,--rosegment
Yığın izleme tutarsızlıkları görmeye devam ediyorsanız (veya işaretlerden ikisi de
araç zincirinizle ilgiliyse) derleme işleminize aşağıdakini eklemeyi deneyin
aşağıdaki adımları uygulayabilirsiniz:
-fno-omit-frame-pointer
Nasıl kullanırım?
NDK için kendi Breakpad simge dosyası oluşturma ikili programım nedir?
Crashlytics eklentisi,
özelleştirilmiş Breakpad simge dosyası oluşturma aracı.
Breakpad simge dosyaları oluşturmak için kendi ikili programınızı kullanmayı tercih ederseniz (
Örneğin, derleme zincirinizdeki tüm yerel yürütülebilir dosyaları
source) [kaynak] değerini belirtmek için isteğe bağlı symbolGeneratorBinary
yürütülebilir dosyanın yoludur.
Breakpad simge dosyası oluşturucu ikili programının yolunu
iki yöntem vardır:
Option 1: Yolu firebaseCrashlytics aracılığıyla belirtin
uzantısı (build.gradle dosyanız)
Uygulama düzeyindeki build.gradle.kts dosyanıza aşağıdakileri ekleyin:
Gradle eklentisi 3.0.0+ sürümü
android {
buildTypes {
release {
configure<CrashlyticsExtension> {
nativeSymbolUploadEnabled = true
// Add these optional fields to specify the path to the executable
symbolGeneratorType = "breakpad"
breakpadBinary = file("/PATH/TO/BREAKPAD/DUMP_SYMS")
}
}
}
}
daha düşük eklenti sürümleri
android {
// ...
buildTypes {
// ...
release {
// ...
firebaseCrashlytics {
// existing; required for either symbol file generator
nativeSymbolUploadEnabled true
// Add this optional new block to specify the path to the executable
symbolGenerator {
breakpad {
binary file("/PATH/TO/BREAKPAD/DUMP_SYMS")
}
}
}
}
}
2. Seçenek: Yolu Gradle'ınızdaki bir özellik satırı aracılığıyla belirtme
özellikler dosyası
com.google.firebase.crashlytics.breakpadBinary kullanabilirsiniz
özelliğini kullanın.
Gradle özellikleri dosyanızı manuel olarak veya mevcut dosyayı güncelleyebilirsiniz
komut satırı üzerinden yönetebilirsiniz. Örneğin, komut aracılığıyla yolu belirtmek için
satırında aşağıdaki gibi bir komut kullanın:
Neden kilitlenmeler görüyorum?
.java sorun olarak etiketlenmiş .kt dosyadan mı alındı?
Bir uygulama, dosya uzantısını açığa çıkarmayan bir kod karartıcı kullandığında
Crashlytics, varsayılan olarak her sorunu .java dosya uzantısıyla oluşturur.
Crashlytics'in doğru dosya uzantısıyla sorunlar oluşturabilmesi için
Uygulamanızda aşağıdaki kurulumun kullanıldığından emin olun:
Android Gradle 4.2.0 veya sonraki bir sürümü kullanır
Kod karartma açık şekilde R8 kullanır. Uygulamanızı R8'e güncellemek için şu adımları uygulayın:
belgeleri inceleyin.
Yukarıda açıklanan ayarları güncelledikten sonra
mevcut .java sorunun kopyası olan yeni .kt sorunları. Bkz.
SSS bölümüne göz atın.
Neden
Mevcut sorunun kopyası olan .kt sorun
.java sorun mu var?
Aralık 2021'in ortasından itibaren Crashlytics, uygulama desteğini iyileştirdi
içerik üretir.
Yakın zamana kadar, kullanılabilir kod karartıcılar dosya uzantısını göstermiyordu, bu nedenle
Crashlytics, varsayılan olarak her sorunu .java dosya uzantısıyla oluşturdu.
Ancak Android Gradle 4.2.0'dan itibaren R8, dosya uzantılarını desteklemektedir.
Bu güncellemeyle Crashlytics, artık her sınıfın
Uygulama Kotlin dilinde yazılmış olmalı ve sorunda doğru dosya adını içermelidir.
imzası var. Kilitlenmeler artık .kt dosyayla doğru şekilde ilişkilendiriliyor (uygun şekilde)
Uygulamanızda aşağıdaki ayarlar yapılmışsa:
Uygulamanız Android Gradle 4.2.0 veya sonraki bir sürümü kullanıyor.
Uygulamanızda kod karartma açık olarak R8 kullanılıyor.
Yeni kilitlenmeler artık sorunlarında doğru dosya uzantısını içerdiğinden,
imzalarsanız aslında yalnızca aynının kopyaları olan yeni .kt sorunlarıyla karşılaşabilirsiniz
.java etiketli mevcut sorunlar. Firebase konsolunda
ve yeni bir .kt sorunu, aynı öğenin olası bir tekrarıysa
.java etiketli mevcut sorun.
Bir sorunla ilgili notları kimler görüntüleyebilir, yazabilir ve silebilir?
Notlar, proje üyelerinin sorular ve durumlarla ilgili belirli sorunlar hakkında yorum yapmasına olanak tanır.
güncellemeler vb.
Bir proje üyesi not yayınladığında bu not, ilgili kullanıcının Google gönderdiği e-posta ile etiketlenir.
hesap. Bu e-posta adresi, notla birlikte tüm projeler tarafından görülebilir
notu görüntüleme erişimine sahip üyeler tarafından görüntülenebilir.
Aşağıda görüntülemek, yazmak ve silmek için gereken erişim izni açıklanmaktadır
notlar:
Aşağıdaki rollerden herhangi birine sahip proje üyeleri mevcut projeleri görüntüleyip silebilir
ve yeni notlar yazabilirsiniz.
Bir sorunla ilgili notları kimler görüntüleyebilir, yazabilir ve silebilir?
Notlar, proje üyelerinin sorular ve durumlarla ilgili belirli sorunlar hakkında yorum yapmasına olanak tanır.
güncellemeler vb.
Bir proje üyesi not yayınladığında bu not, ilgili kullanıcının Google gönderdiği e-posta ile etiketlenir.
hesap. Bu e-posta adresi, notla birlikte tüm projeler tarafından görülebilir
notu görüntüleme erişimine sahip üyeler tarafından görüntülenebilir.
Aşağıda görüntülemek, yazmak ve silmek için gereken erişim izni açıklanmaktadır
notlar:
Aşağıdaki rollerden herhangi birine sahip proje üyeleri mevcut projeleri görüntüleyip silebilir
ve yeni notlar yazabilirsiniz.
Uygulama ayrıca
Google Mobile Ads SDK'sı var ancak kilitlenme almıyor
Projenizde Google Mobile Ads SDK'sı ile birlikte Crashlytics kullanılıyorsa
kilitlenmeyi bildirenler de muhtemelen bu işlem sırasında
istisna işleyicileri kaydetmem gerekiyor. Sorunu düzeltmek için kilitlenme raporlamasını devre dışı bırakın:
disableSDKCrashReporting çağırarak Mobile Ads SDK'sını oluşturun.
BigQuery veri kümem nerede bulunuyor?
Crashlytics'i BigQuery'ye bağladıktan sonra, oluşturduğunuz yeni veri kümeleri
bulunduğunuz yerden bağımsız olarak, otomatik olarak Amerika Birleşik Devletleri'nde bulunabilir.
Firebase projesi.
Platform desteği
Crashlytics, Ermenistanı destekliyor mu?
Firebase Crashlytics NDK, ARMv5'i (Ermeabi) desteklemez.
Bu ABI için destek, NDK r17 itibarıyla kaldırılmıştır.
Geri çekilen sorunlar
Geri çekilen nedir
sorun?
Sorunu daha önce kapattığınız ancak bir
Crashlytics, sorunun yeniden oluştuğunu belirten yeni bir rapor alır.
Crashlytics, geri çekilen bu sorunları otomatik olarak yeniden açar. Böylece şunları yapabilirsiniz:
bunları uygulamanıza uygun şekilde ele alın.
Aşağıda, Crashlytics'in bir etkinliği nasıl sınıflandırdığını açıklayan örnek bir senaryo verilmiştir.
sorunu regresyon olarak ifade eder:
Crashlytics, ilk kez Crash ile ilgili kilitlenme raporu alıyor
"A". Crashlytics, söz konusu kilitlenmeye karşılık gelen bir sorunu açar ("A" sorunu).
Bu hatayı hızlıca düzeltip "A" sorununu kapattıktan sonra
en iyi şekilde yararlanabilirsiniz.
Crashlytics, "A" Sorunu ile ilgili bir rapor daha gönderdi sayfayı kapattıktan sonra
.
Rapor, Crashlytics'in bildiğim bir uygulama sürümünden geliyorsa
sorunu kapattığınızda (sürümün kilitlenme gönderdiğini gösterir)
herhangi bir kilitlenme olduğunu bildirirse Crashlytics,
bu sorunu regresyon olarak gösterir. Sorun kapalı kalacaktır.
Rapor, Crashlytics'in yapmadığı bir uygulama sürümünden geliyorsa
hakkında bilgi sahibi olmanız gerekir (yani sürümdeki
kilitlenmeyle ilgili hiçhiç kilitlenme raporu göndermediyse
Crashlytics, geri çekilen sorunu dikkate alarak
.
ziyaret edin.
Bir sorun gerilediğinde, bir regresyon algılama uyarısı gönderir ve bir
Crashlytics'in daha iyi bir performans için
, sorunu yeniden açtı. Bir sorunun yeniden açılmasını istemiyorsanız
regresyon algoritması, "sessiz" anlamaya çalışın.
Neden gerileme görüyorum?
eski uygulama sürümlerinde sorun mu var?
Rapor, henüz hiç kilitlenme raporu göndermemiş eski bir uygulama sürümünden geliyorsa
sorunu kapattığınızda Crashlytics, sorunun kaynağını
geri çekilir ve sorun yeniden açılır.
Bu durum şu durumda ortaya çıkabilir: Bir hatayı giderdiniz ve
uygulamanızın yeni bir sürümünü yayınladı, ancak kullanıcılarınız hâlâ eski sürümlerini kullanıyor
en iyi uygulamaları paylaşacağız. Şanslısınız. Bu eski sürümlerden biri hiç
hiçbir kilitlenme raporu alamadığımız için ve bu kullanıcılar da
söz konusu hataya rastlarsanız bu kilitlenme raporları geri çekilen bir sorunu tetikler.
Regresyon algoritmamız nedeniyle bir sorunun yeniden açılmasını istemiyorsanız "sesi kapat"
anlamaya çalışın.