Bird
Raised Fist0
Android Kotlinmobile~10 mins

Crashlytics in Android Kotlin - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to initialize Firebase Crashlytics in your Android app.

Android Kotlin
val crashlytics = FirebaseCrashlytics.getInstance()
crashlytics.[1](true)
Drag options to blanks, or click blank then click option'
Alog
BsetCrashlyticsCollectionEnabled
CrecordException
DsendUnsentReports
Attempts:
3 left
💡 Hint
Common Mistakes
Using log() instead of setCrashlyticsCollectionEnabled()
Calling recordException() without an exception
2fill in blank
medium

Complete the code to log a custom message to Crashlytics.

Android Kotlin
FirebaseCrashlytics.getInstance().[1]("User clicked the button")
Drag options to blanks, or click blank then click option'
AsetUserId
BrecordException
Clog
DsendUnsentReports
Attempts:
3 left
💡 Hint
Common Mistakes
Using recordException() to log messages
Forgetting to get the Crashlytics instance first
3fill in blank
hard

Fix the error in the code to record an exception in Crashlytics.

Android Kotlin
try {
  val result = 10 / 0
} catch (e: Exception) {
  FirebaseCrashlytics.getInstance().[1](e)
}
Drag options to blanks, or click blank then click option'
ArecordException
Blog
CsetUserId
DsendUnsentReports
Attempts:
3 left
💡 Hint
Common Mistakes
Using log() instead of recordException() for exceptions
Not catching the exception before recording
4fill in blank
hard

Fill both blanks to set a user ID and enable Crashlytics collection.

Android Kotlin
val crashlytics = FirebaseCrashlytics.getInstance()
crashlytics.[1]("user123")
crashlytics.[2](true)
Drag options to blanks, or click blank then click option'
AsetUserId
Blog
CsetCrashlyticsCollectionEnabled
DrecordException
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up log() with setUserId()
Forgetting to enable collection after setting user ID
5fill in blank
hard

Fill all three blanks to create a custom key, log a message, and record an exception.

Android Kotlin
val crashlytics = FirebaseCrashlytics.getInstance()
crashlytics.[1]("last_screen", "HomeScreen")
crashlytics.[2]("Button clicked")
crashlytics.[3](exception)
Drag options to blanks, or click blank then click option'
AsetCustomKey
Blog
CrecordException
DsetUserId
Attempts:
3 left
💡 Hint
Common Mistakes
Using setUserId() instead of setCustomKey() for custom data
Logging exceptions instead of recording them

Practice

(1/5)
1. What is the main purpose of Crashlytics in an Android app?
easy
A. To automatically track and report app crashes
B. To improve app UI design
C. To manage app navigation
D. To optimize app performance speed

Solution

  1. Step 1: Understand Crashlytics functionality

    Crashlytics is a tool designed to detect and report app crashes automatically.
  2. Step 2: Compare options with Crashlytics purpose

    Only To automatically track and report app crashes matches the core function of Crashlytics, which is crash tracking and reporting.
  3. Final Answer:

    To automatically track and report app crashes -> Option A
  4. Quick Check:

    Crashlytics = crash tracking [OK]
Hint: Crashlytics = crash reports automatically [OK]
Common Mistakes:
  • Confusing Crashlytics with UI or navigation tools
  • Thinking Crashlytics improves app speed
  • Assuming Crashlytics manages app content
2. Which of the following is the correct way to add Crashlytics dependency in your app's build.gradle file?
easy
A. apply plugin: 'com.google.firebase.crashlytics'
B. compile 'com.google.firebase:firebase-crashlytics:18.3.7'
C. implementation 'com.google.firebase:firebase-analytics:18.3.7'
D. implementation 'com.google.firebase:firebase-crashlytics:18.3.7'

Solution

  1. Step 1: Identify correct dependency syntax

    Modern Gradle uses 'implementation' to add dependencies, not 'compile' which is deprecated.
  2. Step 2: Match Crashlytics dependency artifact

    The correct artifact for Crashlytics is 'firebase-crashlytics', not 'firebase-analytics'.
  3. Final Answer:

    implementation 'com.google.firebase:firebase-crashlytics:18.3.7' -> Option D
  4. Quick Check:

    Use implementation + firebase-crashlytics [OK]
Hint: Use 'implementation' with firebase-crashlytics artifact [OK]
Common Mistakes:
  • Using deprecated 'compile' keyword
  • Confusing Crashlytics with Analytics dependency
  • Using plugin apply instead of dependency line
3. Given this Kotlin code snippet, what will Crashlytics record when the app crashes?
try {
  val result = 10 / 0
} catch (e: Exception) {
  Firebase.crashlytics.recordException(e)
}
medium
A. Crashlytics records the division by zero exception
B. No crash recorded because exception is caught
C. App will crash without any report
D. Crashlytics records a null pointer exception

Solution

  1. Step 1: Analyze exception handling

    The division by zero throws an ArithmeticException, which is caught in the catch block.
  2. Step 2: Check Crashlytics exception recording

    The caught exception is passed to Firebase.crashlytics.recordException(e), so Crashlytics logs it even without app crash.
  3. Final Answer:

    Crashlytics records the division by zero exception -> Option A
  4. Quick Check:

    recordException logs caught exceptions [OK]
Hint: recordException logs caught errors even if app doesn't crash [OK]
Common Mistakes:
  • Thinking caught exceptions are ignored by Crashlytics
  • Assuming app crashes without report
  • Confusing exception types
4. You added Crashlytics to your app but no crash reports appear in the Firebase console. What is a common mistake causing this?
medium
A. Adding Crashlytics dependency in the wrong module
B. Using the wrong package name in build.gradle
C. Not initializing Firebase in the Application class
D. Calling recordException outside a try-catch block

Solution

  1. Step 1: Check Firebase initialization

    Firebase must be initialized early, usually in the Application class, for Crashlytics to work.
  2. Step 2: Evaluate other options

    Wrong package name or dependency module can cause issues but the most common is missing Firebase initialization.
  3. Final Answer:

    Not initializing Firebase in the Application class -> Option C
  4. Quick Check:

    Initialize Firebase early for Crashlytics [OK]
Hint: Always initialize Firebase in Application class [OK]
Common Mistakes:
  • Forgetting FirebaseApp.initializeApp(context)
  • Misplacing dependencies in modules
  • Assuming recordException needs try-catch
5. You want to log a custom message and a user ID to Crashlytics before a crash happens. Which code snippet correctly does this?
hard
A. Firebase.crashlytics.log("User clicked the crash button") throw RuntimeException("Test crash") Firebase.crashlytics.setCustomKey("userId", "12345")
B. Firebase.crashlytics.setCustomKey("userId", "12345") Firebase.crashlytics.log("User clicked the crash button") throw RuntimeException("Test crash")
C. throw RuntimeException("Test crash") Firebase.crashlytics.setCustomKey("userId", "12345")
D. Firebase.crashlytics.recordException(RuntimeException("Test crash")) Firebase.crashlytics.setCustomKey("userId", "12345")

Solution

  1. Step 1: Understand Crashlytics logging order

    Custom keys and logs must be set before the crash to be included in the report.
  2. Step 2: Check code snippet order

    Firebase.crashlytics.setCustomKey("userId", "12345") Firebase.crashlytics.log("User clicked the crash button") throw RuntimeException("Test crash") sets the user ID and logs the message before throwing the crash, so data is captured correctly.
  3. Final Answer:

    Set custom key and log before crash throw -> Option B
  4. Quick Check:

    Set keys and logs before crash [OK]
Hint: Set keys/logs before crash throw to capture data [OK]
Common Mistakes:
  • Setting keys after crash throw (too late)
  • Using recordException instead of throwing crash
  • Not logging custom messages
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard