daz*_*000 5 crashlytics-android
以前的 Fabric SDK 允许这样的检查
if (Fabric.isInitialized()) {
crashSetParam(CrashParameters.ROOT_NODE, nodeInfoCompat.toString())
Crashlytics.logException(ex)
}
Run Code Online (Sandbox Code Playgroud)
我无法确定如何在新的 Firebase Android SDK 中执行此操作,这会导致我的 junit 测试可能会遇到此问题而崩溃。我意识到我可以将它包装在一个界面中,但我也很好奇如何以上面这样的简单方式解决它。谢谢。
我也在github上记录了一个问题:
https://github.com/firebase/firebase-android-sdk/issues/1437
如果没有检查,我们在运行单元测试时会得到这样的结果:
java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process null. Make sure to call FirebaseApp.initializeApp(Context) first.
Run Code Online (Sandbox Code Playgroud)
我现在已经用以下方法修复了它:
fun logException(ex: Throwable, nodeInfoCompat: AccessibilityNodeInfoCompat?) {
// We check to make sure Fabric is initialized or else the tests will fail - see above comment
try {
FirebaseCrashlytics.getInstance().setCustomKey(CrashParameters.ROOT_NODE, nodeInfoCompat.toString())
FirebaseCrashlytics.getInstance().recordException(ex)
} catch (e: IllegalStateException) {
Timber.e(e);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 1
我发现的另一个解决方案是将其放在主应用程序类中
if (FirebaseApp.getApps(getApplicationContext()).isEmpty()) {
FirebaseApp.initializeApp(getApplicationContext());}
Run Code Online (Sandbox Code Playgroud)
我只对其进行了一些测试,但在运行测试时,isEmpty() 总是返回 true,而正常使用时它将返回 false。
| 归档时间: |
|
| 查看次数: |
2078 次 |
| 最近记录: |