android - Firebase Crashlytics 无法在 Firebase 控制台中报告崩溃
问题描述
我目前正在尝试将 Google 的 Firebase Crashlytics 报告功能集成到我们的应用程序中。我们目前使用 Fabric,但由于为了支持 Firebase Crashlytics 而弃用了 Fabric。
我遵循了迁移步骤(从 Fabric 迁移到使用 Firebase Crashlytics)。但是,在测试当前实现时,我收到以下错误
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: java.io.FileNotFoundException: /data/user/0/com.company.appa.pos/files/.com.google.firebase.crashlytics/report-persistence/sessions/5ED7DB3A027B00
01184FE3BB77B63DD3/user: open failed: ENOENT (No such file or directory)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at libcore.io.IoBridge.open(IoBridge.java:452)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at java.io.FileInputStream.<init>(FileInputStream.java:76)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.persistence.CrashlyticsReportPersistence.readTextFile(com.google.firebase:firebase-crashlytics@@17.0.0:470)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.persistence.CrashlyticsReportPersistence.synthesizeReport(com.google.firebase:firebase-crashlytics@@17.0.0:309
)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.persistence.CrashlyticsReportPersistence.finalizeReports(com.google.firebase:firebase-crashlytics@@17.0.0:197)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.common.SessionReportingCoordinator.finalizeSessions(com.google.firebase:firebase-crashlytics@@17.0.0:159)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.common.CrashlyticsController.doCloseSessions(com.google.firebase:firebase-crashlytics@@17.0.0:867)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.common.CrashlyticsController.doCloseSessions(com.google.firebase:firebase-crashlytics@@17.0.0:827)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.common.CrashlyticsController$6.call(com.google.firebase:firebase-crashlytics@@17.0.0:407)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.common.CrashlyticsController$6.call(com.google.firebase:firebase-crashlytics@@17.0.0:393)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.common.CrashlyticsBackgroundWorker$3.then(com.google.firebase:firebase-crashlytics@@17.0.0:106)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at com.google.android.gms.tasks.zzf.run(Unknown Source)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(com.google.firebase:firebase-crashlytics@@17.0.0:60)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(com.google.firebase:firebase-crashlytics@@17.0.0:27)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at java.lang.Thread.run(Thread.java:818)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at libcore.io.Posix.open(Native Method)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: at libcore.io.IoBridge.open(IoBridge.java:438)
06-03 19:39:23.735 6223 6250 D FirebaseCrashlytics: ... 16 more
06-03 19:39:23.800 6223 6250 D FirebaseCrashlytics: Opening a new session with ID 5ED7E04B031F-0002-184F-E3BB77B63DD3
06-03 19:39:23.823 6223 6250 D FirebaseCrashlytics: Send via DataTransport disabled. Removing DataTransport reports.
06-03 19:39:25.492 6223 9493 D FirebaseCrashlytics: Timeout exceeded while awaiting app exception callback from FA listener.
06-03 19:39:25.493 6223 6223 D FirebaseCrashlytics: Crashlytics completed exception processing. Invoking default exception handler.
06-03 19:39:25.495 6223 6250 D FirebaseCrashlytics: Attempting to send crash report at time of crash...
06-03 19:39:25.508 6223 6250 D FirebaseCrashlytics: Adding single file 5ED7DB3A027B-0001-184F-E3BB77B63DD3.cls to report 5ED7DB3A027B-0001-184F-E3BB77B63DD3
06-03 19:39:25.510 6223 6250 D FirebaseCrashlytics: Sending report to: https://reports.crashlytics.com/spi/v1/platforms/android/apps/com.company.appb/reports
06-03 19:39:27.666 6223 6250 D FirebaseCrashlytics: Create report request ID: null
06-03 19:39:27.666 6223 6250 D FirebaseCrashlytics: Result was: 202
06-03 19:39:27.668 6223 6250 I FirebaseCrashlytics: Crashlytics Reports Endpoint upload complete: 5ED7DB3A027B-0001-184F-E3BB77B63DD3
解决方案
Firebaser在这里-
这是一个看起来像你的 github 问题的链接:https ://github.com/firebase/firebase-android-sdk/issues/1559
在此评论中,Crashlytics 的一位工程师解释说:“如果您看到 FileNotFoundException 的日志条目以 /user 结尾 - 这是良性的。” 因此,除非您实际上被此阻止或某些东西不起作用,否则您应该一切就绪。
推荐阅读
- django - 如何计算小时和加班时间,保存到数据库?
- django - Django按自定义列表排序
- flutter - 如何防止用户在 Flutter 中共享下载的文件
- python - 如何使dict的元素在python中累积其他元素
- android - 为什么 openssl 命令行中的 Base64 编码与 android.util.Base64 不同
- pandas - 使用 Geopandas 将 Dataframe 数据插入地图
- go - 如何在 protoregistry 中加载 .proto 文件
- tensorflow - 如何在 Tensorflow 2 中合并策略的结果
- beautifulsoup - 使用 BeautifulSoup 解析电影脚本 - 如何忽略嵌套在文本中的标签?
- javascript - 传递 props:其中一个 props `key` 是未定义的,但另一个是可读的