Firebase Crashlytics ऐप्लिकेशन बंद होने की रिपोर्ट देने वाला एक हल्का-फुल्का टूल है. यह रीयल टाइम में काम करता है. इसकी मदद से, आपके ऐप्लिकेशन में स्थिरता से जुड़ी समस्याओं को आसानी से मैनेज किया जा सकता है. Crashlytics, ऐप्लिकेशन बंद होने की समस्याओं को एक साथ ग्रुप में रखकर और उन वजहों को हाइलाइट करके, समस्या हल करने में लगने वाले समय को कम करता है जिनकी वजह से ऐप्लिकेशन बंद होता है.
इस गाइड में, Crashlytics को Android Studio प्रोजेक्ट में इंटिग्रेट करने का तरीका बताया गया है, ताकि विज्ञापन रिस्पॉन्स आईडी लॉग किए जा सकें. AdMob
पहला चरण: किसी Android ऐप्लिकेशन में Firebase जोड़ना
अगर आपको किसी नए ऐप्लिकेशन से Firebase के साथ लॉग इन करना है, तो आप Android के लिए Google Mobile Ads SDK उदाहरण रिपॉज़िटरी को GitHub पर डाउनलोड या क्लोन कर सकते हैं. इस गाइड में, खास तौर पर बैनर के उदाहरण का इस्तेमाल किया गया है.
अगर आपके पास पहले से कोई ऐप्लिकेशन है, तो आपको अपने ऐप्लिकेशन के पैकेज नाम के साथ अन्य चरणों पर आगे बढ़ना चाहिए. रिपॉज़िटरी में मौजूद अन्य उदाहरणों पर भी, मामूली बदलावों के साथ यही चरण लागू किए जा सकते हैं.
Firebase Crashlytics का इस्तेमाल करने के लिए, आपको एक Firebase प्रोजेक्ट बनाना होगा और उसमें अपना ऐप्लिकेशन जोड़ना होगा. अगर आपने अभी तक Firebase प्रोजेक्ट नहीं बनाया है, तो उसे बनाएं. पक्का करें कि आपने अपने ऐप्लिकेशन को रजिस्टर किया हो.
Firebase कंसोल के Crashlytics पेज पर, Crashlytics सेट अप करें पर क्लिक करें.
दिखने वाली स्क्रीन पर, नहीं > नया Firebase ऐप्लिकेशन सेट अप करें पर क्लिक करें.

अपने build.gradle में, Google Analytics, Fabric, और Crashlytics के लिए डिपेंडेंसी जोड़ें.
app/build.gradle
apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' // Add the Fabric plugin apply plugin: 'io.fabric' dependencies { // ... // Add Google Mobile Ads SDK implementation 'com.google.android.gms:play-services-ads:25.4.0' // Add the Firebase Crashlytics dependency. implementation 'com.google.firebase:firebase-crashlytics:20.0.6' }
project/build.gradle
buildscript { repositories { // ... // Add Google's Maven repository. google() } dependencies { // ... classpath 'com.google.gms:google-services:4.5.0' // Add the Fabric Crashlytics plugin. classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.7' } } allprojects { // ... repositories { // Check that Google's Maven repository is included (if not, add it). google() // ... } }अपने ऐप्लिकेशन को बनाएं और चलाएं, ताकि यह पक्का किया जा सके कि Crashlytics सही तरीके से कॉन्फ़िगर किया गया है. सेटअप सही तरीके से होने के बाद, Crashlytics डैशबोर्ड को ऐक्सेस किया जा सकेगा.

(ज़रूरी नहीं): अपने सेटअप की जांच करना
क्रैश बटन जोड़कर, हर बटन दबाने पर ऐप्लिकेशन को क्रैश किया जा सकता है.
यहां एक उदाहरण दिया गया है, जिसमें Activity के onCreate() तरीके में क्रैश बटन जोड़ने का तरीका बताया गया है:
MainActivity (अंश)
Java
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in // values/strings.xml. adView = findViewById(R.id.ad_view); // Start loading the ad in the background. adView.loadAd(new AdRequest.Builder().build()); // Add a crash button. Button crashButton = new Button(this); crashButton.setText("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)); }
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in // values/strings.xml. adView = findViewById(R.id.ad_view) // Start loading the ad in the background. adView.loadAd(AdRequest.Builder().build()) // Add a crash button. val crashButton = Button(this) crashButton.text = "Crash!" crashButton.setOnClickListener { throw RuntimeException("Test Crash") // Force a crash } addContentView(crashButton, ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)) }
Android Studio में, अपने ऐप्लिकेशन को किसी एम्युलेटर या कनेक्ट किए गए डिवाइस पर बनाएं और चलाएं. ऐप्लिकेशन लोड होने के बाद, क्रैश बटन पर क्लिक किया जा सकता है. क्रैश लॉग को Crashlyics पर अपलोड करने के लिए, डिवाइस या Android Studio से ऐप्लिकेशन को फिर से लॉन्च करें.
दूसरा चरण: विज्ञापन रिस्पॉन्स आईडी लॉग करना
अगर एक से ज़्यादा विज्ञापन लोड किए जाते हैं और उन्हें अलग-अलग समय पर दिखाया जाता है, तो हर विज्ञापन रिस्पॉन्स आईडी को अलग कुंजी के साथ लॉग करना बेहतर होता है. उदाहरण के लिए, इस गाइड में सिर्फ़ एक बैनर विज्ञापन वाला उदाहरण इस्तेमाल किया गया है. इसलिए, हम नीचे दिए गए स्निपेट में, विज्ञापन रिस्पॉन्स आईडी को banner_ad_response_id कुंजी के तौर पर लॉग करते हैं. दरअसल, Firebase Crashlytics में, अलग-अलग तरह के विज्ञापनों और विज्ञापन इवेंट के लिए, कई कस्टम कुंजी / वैल्यू पेयर बनाए जा सकते हैं. विज्ञापन के लाइफ़साइकल के लिए, AdListener देखें. कस्टम लॉगिंग के बारे में ज़्यादा जानने के लिए, Firebase Crashlytics की क्रैश
रिपोर्ट
को पसंद के मुताबिक बनाना लेख पढ़ें.
अपने MyActivity.java में, यह कोड जोड़ें. असल में, यह
FirebaseCrashlytics.setCustomKey()
फ़ंक्शन का इस्तेमाल onAdLoaded() कॉलबैक फ़ंक्शन में करता है, ताकि यह पक्का किया जा सके कि getResponseInfo() को कॉल करने से पहले विज्ञापन
लोड हो गया हो.
Java
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in // values/strings.xml. adView = findViewById(R.id.ad_view); adView.setAdListener(new AdListener() { @Override public void onAdLoaded() { String adResponseId = adView.getResponseInfo().getResponseId(); FirebaseCrashlytics.getInstance().setCustomKey( "banner_ad_response_id", adResponseId); } }); // Start loading the ad in the background. adView.loadAd(new AdRequest.Builder().build()); // Add a crash button. Button crashButton = new Button(this); crashButton.setText("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)); }
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in // values/strings.xml. adView = findViewById(R.id.ad_view) adView.adListener = object : AdListener() { override fun onAdLoaded() { mAdView.responseInfo?.responseId?.let { adResponseId -> FirebaseCrashlytics.getInstance().setCustomKey( "banner_ad_response_id", adResponseId) } } } // Start loading the ad in the background. adView.loadAd(AdRequest.Builder().build()) // Add a crash button. val crashButton = Button(this) crashButton.text = "Crash!" crashButton.setOnClickListener { throw RuntimeException("Test Crash") // Force a crash } addContentView(crashButton, ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)) }
बधाई हो! अब आपको Crashlytics डैशबोर्ड पर, क्रैश सेशन के कुंजी सेक्शन में, हाल ही का banner_ad_response_id दिखेगा. ध्यान दें कि कुछ कुंजियों को आपके डैशबोर्ड में दिखने में एक घंटा लग सकता है.
