【发布时间】:2017-10-22 19:52:37
【问题描述】:
升级到 com.crashlytics.sdk.android:crashlytics:2.7.1@aar(从 2.6.8 开始)后,我无法再在我的 Firebase 应用中禁用 Crashlytics。
Crashlytics 库本身中似乎有一些代码可以在检测到 Fabric 正在 Firebase 应用程序中运行时使用启用的 Crashlytics 工具包初始化 Fabric。实际上,在启用 Crashlytics 和 ext.enableCrashlytics = false 的情况下进行初始化会引发 UnmetDependencyException 并在启动时使应用程序崩溃(事实上,在我的 Application.onCreate 中的代码运行之前)。
有人知道解决方法吗?现在坚持使用 2.6.8。 这就是我在升级之前一直有效的代码:
app/build.gradle:
ext.enableCrashlytics = false
Application.java(onCreate,按要求提供完整的方法体):
super.onCreate();
if (LeakCanary.isInAnalyzerProcess(this)) {
return;
}
LeakCanary.install(this);
// First Fabric invocation
Fabric.with(this, new Crashlytics.Builder().core(
new CrashlyticsCore.Builder().disabled(true).build()).build());
RxJavaPlugins.setErrorHandler(e -> LOGGER.error("Undeliverable RxJava error", e));
// First Firebase invocation
FirebaseDatabase db = FirebaseDatabase.getInstance();
if (BuildConfig.DEBUG) {
db.setLogLevel(com.google.firebase.database.Logger.Level.DEBUG);
}
db.setPersistenceEnabled(true);
【问题讨论】:
-
阅读您的帖子后,我对 2.7.1 进行了相同的升级,但没有崩溃,尽管第一次构建失败,我不得不清理项目并重新构建。看起来你的设置是正确的described in the documentation。
-
来自 Fabric 的 Mike。我正在进一步研究,但你能分享你的 Firebase 初始化代码吗?特别是 Firebase 和 Fabric 的顺序,哪个先出现?
-
@BobSnyder:我尝试了清理和重建,也尝试了 Android Studio 中的“使缓存无效并重新启动”,不幸的是它没有帮助。不过感谢您的提示!
-
@MikeBonnell:感谢您的关注,更新了帖子。
标签: firebase crashlytics crashlytics-android