NativeScript / NativeScript/firebase
[firebase-crashlytics] Fatal errors aren't sent to Firebase console
Personne n'a encore pris cette issue.
- Langage dominant
- TypeScript
- Étoiles
- 62
- Forks
- 53
- Merge moyen
- 8 j 4 h
- PR mergées (30 j)
- 2
Description
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');
});
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par la configuration de Crashlytics dans app.ts et par l’appel firebase().crashlytics().crash() montré dans le rapport. Reproduisez le crash fatal sur Android, examinez la sortie Logcat fournie et comparez-la au chemin recordError() fonctionnel. La tâche est terminée lorsque les rapports fatals apparaissent dans la console Firebase après le redémarrage de l’application.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- android, firebase, typescript
- Domaine
- mobile
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100