首页 文章

无法在Firebase应用中停用Crashlytics(不再)

提问于
浏览
14

升级到 com.crashlytics.sdk.android:crashlytics:2.7.1@aar (从2.6.8开始)后,我无法在Firebase应用中禁用Crashlytics .

看起来Crashlytics库中有一些代码,只要它检测到它在Firebase应用程序中运行,就会使用Crashlytics工具包 enabled 初始化它 . 确实初始化时启用了Crashlytics并且 ext.enableCrashlytics = false 会抛出UnmetDependencyException并在启动时崩溃应用程序(事实上,在我的代码运行 Application.onCreate 之前) .

有谁知道解决方法吗?坚持2.6.8现在工作 . 这是我在我的代码中使用的,直到升级为止:

应用程序/的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 回答

  • 31

    来自Fabric的Mike来自这里 . 使用:

    <meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
    

    如果你想在使用Firebase时禁用Crashlytics .

  • 21

    根据迈克的回答,即时添加我的代码:

    Gradle:

    buildTypes {
       release {
            manifestPlaceholders = [crashlyticsEnabled: true]
        }
    
        debug {
            manifestPlaceholders = [crashlyticsEnabled: false]
        }
    }
    

    Manifest.xml:

    <meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="${crashlyticsEnabled}" />
    

相关问题