首页 > 解决方案 > Android:为调试构建禁用 crashlytics

问题描述

我只是想禁用 crashlytics 以进行调试构建。

所以我按照他们官方文档中的说明进行操作。 https://docs.fabric.io/android/crashlytics/build-tools.html

根据文件,我必须做以下事情,所以我做到了。首先我在下面添加,

android {
buildTypes {
    debug {
      // Disable fabric build ID generation for debug builds
      ext.enableCrashlytics = false
      ...

我在下面添加到我的应用程序类中。

// Set up Crashlytics, disabled for debug builds
Crashlytics crashlyticsKit = new Crashlytics.Builder()
.core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
.build();

// Initialize Fabric with the debug-disabled crashlytics.
Fabric.with(this, crashlyticsKit);

但我仍然得到这个错误。

     Caused by: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,

有什么我想念的吗?

我检查了我尝试构建的构建类型,并且在没有此配置之前它运行良好。

我的 crashlytics 版本是 2.9.4。

implementation 'com.crashlytics.sdk.android:crashlytics:2.9.4'

谢谢!

标签: androidfirebasecrashlyticscrashlytics-android

解决方案


要在您的应用程序启动之前禁用 Firebase,您需要将以下代码添加到您的 AndroidManifest.xml:

<application
    ... >

    ...

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

</application>

表达式 ${crashlyticsCollectionEnabled} 称为清单占位符,其值来自主模块的构建。毕业文件:

安卓 {

...

buildTypes {
    debug {
        manifestPlaceholders = [crashlyticsCollectionEnabled:"false"]
        ...
    }

    release {
        manifestPlaceholders = [crashlyticsCollectionEnabled:"true"]
        ...
    }
}

}


推荐阅读