从Android检测测试中发送Crashlytics报告

时间:2017-11-19 13:20:45

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

我在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默认行为的选项,因为它似乎是一个合理的功能。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

import com.google.firebase.crash.FirebaseCrash;

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

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