[firebase-crashlytics] Fatal errors aren't sent to Firebase console
hyvong-iclic opened this issue · 2 comments
Description
On Android, crashing the application with firebase().crashlytics().crash() at launch or on tap of a button doesn't seem to create a report and send it to the Firebase console.
However, non-fatal errors registered using recordError()
are logged. Only fatal errors alone are not.
I tried using an emulator as well as a real device.
I didn't encounter this problem on iOS.
I used adb -d shell setprop log.tag.FirebaseCrashlytics DEBUG
in order to debug with Android Studio Logcat window.
LOGCAT
When launching the app:
I Initializing Firebase Crashlytics 18.3.5 for [my_app]
D Crashlytics automatic data collection ENABLED by API.
D AnalyticsConnector now available.
D Registered Firebase Analytics listener.
D Could not find resources: 0 0 0
D Mapping file ID is: 00000000000000000000000000000000
D Checking for cached settings...
D Loaded cached settings: {"settings_version":3,"cache_duration":86400,"features":{"collect_logged_exceptions":true,"collect_reports":true,"collect_analytics":false,"prompt_enabled":false,"push_enabled":false,"firebase_crashlytics_enabled":false,"collect_anrs":true,"collect_metric_kit":false,"collect_build_ids":true},"app":{"status":"activated","update_required":false,"report_upload_variant":2,"native_report_upload_variant":2},"fabric":{"org_id":"[my_org_id]","bundle_id":"[my_app]"},"on_demand_upload_rate_per_minute":10,"on_demand_backoff_base":1.2,"on_demand_backoff_step_duration_seconds":60,"app_quality":{"sessions_enabled":true,"sampling_rate":1,"session_timeout_seconds":1800},"expires_at":1692371612723}
D Crashlytics automatic data collection ENABLED by API.
D Opening a new session with ID 64DE3B9F0282000141206C187BCC6F6F
D Successfully configured exception handler.
D Registered Firebase Analytics event receiver for breadcrumbs
D Loaded userId d9cca353b92f4809 for session 64DE3AE602DD00013EC409DA663282C6
D Crashlytics automatic data collection ENABLED by API.
Then, I immediatly click on the crash test button:
E FATAL EXCEPTION: main
Process: [my_app], PID: 16672
java.lang.RuntimeException: Crash Test
at org.nativescript.firebase.crashlytics.FirebaseCrashlytics$Companion.crash$lambda-12(FirebaseCrashlytics.kt:70)
at org.nativescript.firebase.crashlytics.FirebaseCrashlytics$Companion.$r8$lambda$OnmfIXby3H6SMwJX2zdCZGh29Ek(Unknown Source:0)
at org.nativescript.firebase.crashlytics.FirebaseCrashlytics$Companion$$ExternalSyntheticLambda0.run(Unknown Source:0)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7952)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
W at org.nativescript.firebase.crashlytics.FirebaseCrashlytics$Companion.crash$lambda-12(FirebaseCrashlytics.kt:70)
W at org.nativescript.firebase.crashlytics.FirebaseCrashlytics$Companion.$r8$lambda$OnmfIXby3H6SMwJX2zdCZGh29Ek(Unknown Source:0)
W at org.nativescript.firebase.crashlytics.FirebaseCrashlytics$Companion$$ExternalSyntheticLambda0.run(Unknown Source:0)
This follows right after the RuntimeException occured and the error screen on in the app is still visible:
I Initializing Firebase Crashlytics 18.3.5 for [my_app]
D Crashlytics automatic data collection ENABLED by API.
D AnalyticsConnector now available.
D Registered Firebase Analytics listener.
D Could not find resources: 0 0 0
D Mapping file ID is: 00000000000000000000000000000000
D Checking for cached settings...
D Loaded cached settings: {"settings_version":3,"cache_duration":86400,"features":{"collect_logged_exceptions":true,"collect_reports":true,"collect_analytics":false,"prompt_enabled":false,"push_enabled":false,"firebase_crashlytics_enabled":false,"collect_anrs":true,"collect_metric_kit":false,"collect_build_ids":true},"app":{"status":"activated","update_required":false,"report_upload_variant":2,"native_report_upload_variant":2},"fabric":{"org_id":"[my_org_id]","bundle_id":"[my_app]"},"on_demand_upload_rate_per_minute":10,"on_demand_backoff_base":1.2,"on_demand_backoff_step_duration_seconds":60,"app_quality":{"sessions_enabled":true,"sampling_rate":1,"session_timeout_seconds":1800},"expires_at":1692371612723}
D Crashlytics automatic data collection ENABLED by API.
D Opening a new session with ID 64DE3BAD0399000142166C187BCC6F6F
D Successfully configured exception handler.
D Registered Firebase Analytics event receiver for breadcrumbs
D Loaded userId d9cca353b92f4809 for session 64DE3B9F0282000141206C187BCC6F6F
When I restart the app:
I Initializing Firebase Crashlytics 18.3.5 for [my_app]
D Crashlytics automatic data collection ENABLED by API.
D AnalyticsConnector now available.
D Registered Firebase Analytics listener.
D Could not find resources: 0 0 0
D Mapping file ID is: 00000000000000000000000000000000
D Checking for cached settings...
D Loaded cached settings: {"settings_version":3,"cache_duration":86400,"features":{"collect_logged_exceptions":true,"collect_reports":true,"collect_analytics":false,"prompt_enabled":false,"push_enabled":false,"firebase_crashlytics_enabled":false,"collect_anrs":true,"collect_metric_kit":false,"collect_build_ids":true},"app":{"status":"activated","update_required":false,"report_upload_variant":2,"native_report_upload_variant":2},"fabric":{"org_id":"[my_org_id]","bundle_id":"[my_app]"},"on_demand_upload_rate_per_minute":10,"on_demand_backoff_base":1.2,"on_demand_backoff_step_duration_seconds":60,"app_quality":{"sessions_enabled":true,"sampling_rate":1,"session_timeout_seconds":1800},"expires_at":1692371612723}
D Crashlytics automatic data collection ENABLED by API.
D Opening a new session with ID 64DE3BBC002C000142806C187BCC6F6F
D Successfully configured exception handler.
D Registered Firebase Analytics event receiver for breadcrumbs
D No userId set for session 64DE3BAD0399000142166C187BCC6F6F
D Crashlytics automatic data collection ENABLED by API.
I noticed the user ID is missing when I restart the app. I don't know if it matters in this situation.
My app configuration (in app.ts):
firebase().initializeApp().then(() => {
// other configurations for firebase modules
//Crashlytics
firebase().crashlytics().setUserId(device.uuid);
firebase().crashlytics().setCrashlyticsCollectionEnabled(true);
firebase().crashlytics().log('App started');
});