Android uygulamanız yerel kitaplıklar içeriyorsa, yerel kodunuz için tam yığın izlemeyi ve ayrıntılı kilitlenme raporlarını etkinleştirebilirsiniz Firebase Crashlytics tarihinden itibaren uygulamanızın derlemesinde birkaç küçük güncelleme yapın yapılandırma.
Bu kılavuzda, NDK için Firebase Crashlytics SDK'sı.
Unity projelerinizi Crashlytics ile kullanmaya nasıl başlayacağınızı öğrenmek istiyorsanız Unity'yi kullanmaya başlama kılavuzuna göz atın.
Başlamadan önce
Henüz yapmadıysanız Android cihazınıza Firebase'i ekleyin. belirler. Android uygulamanız yoksa indirebilirsiniz örnek uygulamaya gidin.
Önerilir: Kilitlenme, ölümcül olmayan veya ANR etkinliğine yol açan kullanıcı işlemlerini anlamak için ekmek kırıntıları günlüklerini otomatik olarak almak istiyorsanız Firebase projenizde Google Analytics'i etkinleştirmeniz gerekir.
Mevcut Firebase projenizde Google Analytics yoksa Google Analytics öğesini şuradan etkinleştirebilirsiniz: hesabınızın Entegrasyonlar
> Proje ayarlarıFirebase konsolunda kontrol edebilirsiniz. Yeni bir Firebase projesi oluşturuyorsanız Google Analytics özelliğini etkinleştirin müzakere tekniği de eklediniz.
Uygulamanızın aşağıdaki minimum gerekli sürümlere sahip olduğundan emin olun:
- Gradle 8.0
- Android Gradle eklentisi 8.1.0
- Google hizmetleri Gradle eklentisi 4.4.1
1. Adım: NDK için Crashlytics SDK'sını uygulamanıza ekleyin
Modül (uygulama düzeyinde) Gradle dosyanıza (genellikle<project>/<app-module>/build.gradle.kts
veya <project>/<app-module>/build.gradle
) Android için Crashlytics NDK kitaplığına ait bağımlılık ekleyin. Kitaplık sürümlendirmesini kontrol etmek için Firebase Android BoM simgesini kullanmanızı öneririz.
En iyi Crashlytics deneyimi için şunları öneririz: Google Analytics özelliğini etkinleştirme Firebase projenize ekleyin ve uygulamanıza Google Analytics için Firebase SDK'sını ekleyin.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.3.0")) // Add the dependencies for the Crashlytics NDK and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-crashlytics-ndk") implementation("com.google.firebase:firebase-analytics") }
Firebase Android BoM kullanıldığında, Uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanacaktır.
(Alternatif) BoM
Firebase BoM kullanmamayı seçerseniz her Firebase kitaplık sürümünü bağımlılık satırında belirtmeniz gerekir.
Uygulamanızda birden çok Firebase kitaplığı kullanıyorsanız, kitaplık sürümlerini yönetmek için BoM kullanmanızı öneririz. Bu, tüm sürümlerin uyumlu olduğundan emin olun.
dependencies { // Add the dependencies for the Crashlytics NDK and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-crashlytics-ndk:19.1.0") implementation("com.google.firebase:firebase-analytics:22.1.0") }.
2. Adım: Crashlytics Gradle eklentisini uygulamanıza ekleyin
Kök düzeyindeki (proje düzeyinde) Gradle dosyanızda (
<project>/build.gradle.kts
veya<project>/build.gradle
),plugins
bloğuna Crashlytics Gradle eklentisi:Kotlin
plugins { // Make sure that you have the AGP plugin 8.1+ dependency id("com.android.application") version "8.1.4" apply false // ... // Make sure that you have the Google services Gradle plugin 4.4.1+ dependency id("com.google.gms.google-services") version "4.4.2" apply false // Add the dependency for the Crashlytics Gradle plugin id("com.google.firebase.crashlytics") version "3.0.2" apply false }
Groovy
plugins { // Make sure that you have the AGP plugin 8.1+ dependency id 'com.android.application' version '8.1.4' apply false // ... // Make sure that you have the Google services Gradle plugin 4.4.1+ dependency id 'com.google.gms.google-services' version '4.4.2' apply false // Add the dependency for the Crashlytics Gradle plugin id 'com.google.firebase.crashlytics' version '3.0.2' apply false }
Modülünüz (uygulama düzeyinde) Gradle dosyanızda (genellikle
<project>/<app-module>/build.gradle.kts
veya<project>/<app-module>/build.gradle
), Crashlytics Gradle eklentisini ekleyin:Kotlin
plugins { id("com.android.application") // ... // Make sure that you have the Google services Gradle plugin id("com.google.gms.google-services") // Add the Crashlytics Gradle plugin id("com.google.firebase.crashlytics") }
Groovy
plugins { id 'com.android.application' // ... // Make sure that you have the Google services Gradle plugin id 'com.google.gms.google-services' // Add the Crashlytics Gradle plugin id 'com.google.firebase.crashlytics' }
3. Adım: Crashlytics uzantısını derlemenize ekleyin
Modül (uygulama düzeyi) Gradle dosyanızda (genellikle <project>/<app-module>/build.gradle.kts
veya <project>/<app-module>/build.gradle
) Crashlytics uzantısını yapılandırın.
Kotlin
import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension
// ...
android {
// ...
buildTypes {
getByName("release") {
// Add this extension
configure<CrashlyticsExtension> {
// Enable processing and uploading of native symbols to Firebase servers.
// By default, this is disabled to improve build speeds.
// This flag must be enabled to see properly-symbolicated native
// stack traces in the Crashlytics dashboard.
nativeSymbolUploadEnabled = true
}
}
}
}
Groovy
// ...
android {
// ...
buildTypes {
release {
// Add this extension
firebaseCrashlytics {
// Enable processing and uploading of native symbols to Firebase servers.
// By default, this is disabled to improve build speeds.
// This flag must be enabled to see properly-symbolicated native
// stack traces in the Crashlytics dashboard.
nativeSymbolUploadEnabled true
}
}
}
}
4. Adım: Yerel simgelerin otomatik yüklenmesini ayarlayın
NDK kilitlenmelerinden okunabilir yığın izlemeler (stack trace) oluşturmak için Crashlytics öğesinin bilmesi gerekir
yerel ikili programlarınızdaki simgeler hakkında Crashlytics Gradle eklentisi
uploadCrashlyticsSymbolFileBUILD_VARIANT
içerir
görevi otomatikleştirmektir.
Otomatik sembol yükleme görevine erişebilmek için
nativeSymbolUploadEnabled
öğesinin, modülünüzdetrue
olarak ayarlandığını doğrulayın (uygulama düzeyi) Gradle dosyası.Yöntem adlarının yığın izlemelerinizde görünmesi için
uploadCrashlyticsSymbolFileBUILD_VARIANT
görevi tamamlayın. Örneğin:>./gradlew app:assembleBUILD_VARIANT\ app:uploadCrashlyticsSymbolFileBUILD_VARIANT
NDK için Crashlytics SDK'sı ve Crashlytics Gradle eklentisi yerel paylaşılan nesnelerdeki GNU derleme kimliğinin varlığına bağlıdır.
Bu kimliğin varlığını Her ikili program için
. Derleme kimliği yoksa derleme sisteminizin kodunareadelf -n
ekleyin. işareti koyun.-Wl,--build-id
5. adım: Kurulumu tamamlamak için test kilitlenmesini zorlama
Crashlytics kurulumunu tamamlamak ve ilk verileri Firebase konsolunun Crashlytics kontrol paneli, testi zorunlu kılmanız gerekiyor olabilir.
Uygulamanıza, test kilitlenmesini zorlamak için kullanabileceğiniz bir kod ekleyin.
Düğme eklemek için uygulamanızın
MainActivity
bölümünde aşağıdaki kodu kullanabilirsiniz bu işlev, basıldığında kilitlenmeye neden olur. Düğme etiketli "Kilitlenmeyi test et".Kotlin+KTX
val crashButton = Button(this) crashButton.text = "Test Crash" crashButton.setOnClickListener { throw RuntimeException("Test Crash") // Force a crash } addContentView(crashButton, ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT))
Java
Button crashButton = new Button(this); crashButton.setText("Test Crash"); crashButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { throw new RuntimeException("Test Crash"); // Force a crash } }); addContentView(crashButton, new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
Uygulamanızı derleyip çalıştırın.
Uygulamanızın ilk kilitlenme raporunu göndermek için test kilitlenmesini zorunlu kılın:
Test cihazınızdan veya emülatörünüzden uygulamanızı açın.
Uygulamanızda "Kilitlenmeyi Test Et"e basın kodu kullanarak eklediğiniz düğme bölümünü ziyaret edin.
Kilitlendikten sonra uygulamanızın kilitlenmeyi gönderebilmesi için uygulamayı yeniden başlatın Firebase'e bildirir.
Test kilitlenmenizi görmek için Firebase konsolunun Crashlytics kontrol paneline gidin.
Konsolu yeniledikten sonra beş dakika geçmesine rağmen testin kilitlendiğini görmüyorsanız uygulamanızın kilitlenme raporu gönderip göndermediğini görmek için hata ayıklama günlük kaydını etkinleştirin.
Hepsi bu kadar. Crashlytics artık uygulamanızı kilitlenmelere karşı izliyor ve siz
Google Haritalar API'larını kullanarak kilitlenme raporlarını ve
Crashlytics kontrol paneli.
Sonraki adımlar
(Önerilir) Yerel bellek hatalarının neden olduğu kilitlenmelerde hata ayıklama konusunda yardım alın: toplama GWP-ASan raporları hakkında daha fazla bilgi edinin. Bellekle ilgili bu hatalar, Bu, uygulama güvenliği açıklarının önde gelen nedenidir. Bu hata ayıklama özelliğinden yararlanmak için uygulamanızın GWP-ASan açıkça etkinleştirildi ve NDK için en güncel Crashlytics SDK'sını (v18.3.6+ veya Firebase BoM sürüm 31.3.0+).
Etkinleştirme raporları, günlükler, anahtarlar ve ölümcül olmayan hataların izlenmesini ekleyerek kilitlenme raporu ayarlarınızı özelleştirin.
Google Play ile entegre ederek Android uygulamanızın kilitlenme raporlarını Google Play kanalına göre filtreleyebilirsiniz. Crashlytics kontrol paneli. Bu sayede kontrol panelinizde belirli derlemelere daha iyi odaklanabilirsiniz.
Sorun giderme
Firebase konsolunda ve içinde farklı yığın izlemeler (stack trace) görüyorsanız Sorun giderme kılavuzuna bakın.
Simge yüklemek için alternatif seçenekler
Yukarıdaki bu sayfada yer alan ana iş akışı, standart Gradle derlemeleri için geçerlidir. Ancak bazı uygulamalar farklı bir yapılandırma veya araç (örneğin, başka bir işlem) ekleyebilirsiniz. Bu durumlarda, aşağıdaki seçenekler sembolleri başarılı bir şekilde yükleme açısından yararlıdır.
Seçenek: Kitaplık modülleri ve harici bağımlılıklar için sembol yükleme
Bu seçenek aşağıdaki durumlarda faydalı olabilir:
- Gradle'de özelleştirilmiş bir NDK derleme süreci kullanıyorsanız
- Yerel kitaplıklarınız bir kitaplık/özellik modülünde yerleşik olarak bulunuyorsa veya üçüncü taraf
- Otomatik sembol yükleme görevi başarısız oluyorsa veya kontrol panelinde sembolü olmayan kilitlenmeler görüyorsanız
Seçenek: Gradle olmayan derlemeler veya erişilemeyen sade yerel kitaplıklar için semboller yükleyin
Bu seçenek aşağıdaki durumlarda faydalı olabilir:
Gradle dışında bir derleme işlemi kullanıyorsanız
Çıplak yerel kitaplıklarınız Gradle derlemeleri sırasında erişilemeyecek şekilde sağlanıyorsa