【问题标题】:Send Crashlytics reports from Android instrumented tests从 Android 插桩测试发送 Crashlytics 报告
【发布时间】:2018-05-02 19:18:55
【问题描述】:

我正在 Firebase 测试实验室运行我的插桩测试,并希望将非致命异常报告给 Crashlytics。

但是,致电Crashlytics.logException() 不会立即发送报告。启用core.debuggable(true) 后,我在发送报告时看到:

D/CrashlyticsCore: Crashlytics is logging non-fatal exception "java.lang.Throwable: java.lang.Throwable" from thread main

但在我重新启动应用程序之前,该报告在 Crashlytics 仪表板上不可见,然后我看到:

D/CrashlyticsCore: Checking for crash reports...
D/CrashlyticsCore: Found crash report /data/user/0/.../files/.Fabric/com.crashlytics.sdk.android.crashlytics-core/nonfatal-sessions/....cls
D/CrashlyticsCore: Attempting to send 1 report(s)
D/CrashlyticsCore: Adding single file ....cls to report ...
D/CrashlyticsCore: Sending report to: https://reports.crashlytics.com/spi/v1/platforms/android/apps/org.dasfoo.delern.instrumented/reports
D/CrashlyticsCore: Create report request ID: null
D/CrashlyticsCore: Result was: 202
I/CrashlyticsCore: Crashlytics report upload complete: ...
D/CrashlyticsCore: Removing report at /data/user/0/.../files/.Fabric/com.crashlytics.sdk.android.crashlytics-core/nonfatal-sessions/....cls
D/CrashlyticsCore: Checking for crash reports...
D/CrashlyticsCore: No reports found.

这对于生产用例来说并不理想,但至少在用户重新启动应用程序时它会起作用。在测试中,这永远不会起作用,因为 Firebase 测试实验室不会重新启动应用(重新启动应用意味着测试将失败)。

是否有任何解决方法可以让 Crashlytics 从检测的测试中发送非致命报告?

使用过的包:

com.crashlytics.sdk.android:crashlytics:2.6.8@aar
io.fabric.tools:gradle:1.24.0

UPD:改写问题和标题。我正在寻找一个更改 Crashlytics 默认行为的选项,因为它似乎是一个合理的功能。

【问题讨论】:

标签: android firebase crashlytics google-fabric crashlytics-android


【解决方案1】:

没有办法报告当前会话中的非致命事件。需要重新启动应用才能将非致命事件报告给 Crashlytics。

【讨论】:

  • 没错。我设法通过诱使 Crashlytics 认为该应用程序已重新启动来解决此限制,但这是一个只有在测试中才能负担得起的肮脏黑客。我希望将来 Crashlytics 团队会添加立即上传崩溃的可选功能。
【解决方案2】:
import com.google.firebase.crash.FirebaseCrash;

FirebaseCrash.report(new Exception("Error in CreateMobileAlertNative "+e.getStackTrace()));

我曾经通过使用这个 FirebaseCrash 类在 crashlytics 上获得非致命异常,我在我的 catch 上放了一些代码,我曾经通过这些代码获取这些报告,试试这个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 2015-03-14
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    相关资源
    最近更新 更多