Android:禁用用于调试构建的 crashlytics

Lee*_*min -2 android firebase crashlytics crashlytics-android

我只是想为调试版本禁用 crashlytics。

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

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

android {
buildTypes {
    debug {
      // Disable fabric build ID generation for debug builds
      ext.enableCrashlytics = false
      ...
Run Code Online (Sandbox Code Playgroud)

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

// 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);
Run Code Online (Sandbox Code Playgroud)

但我仍然收到这个错误。

     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,
Run Code Online (Sandbox Code Playgroud)

有什么我想念的吗?

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

我的 crashlytics 版本是 2.9.4。

implementation 'com.crashlytics.sdk.android:crashlytics:2.9.4'
Run Code Online (Sandbox Code Playgroud)

谢谢!

小智 6

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

<application
    ... >

    ...

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

</application>
Run Code Online (Sandbox Code Playgroud)

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

安卓 {

...

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

    release {
        manifestPlaceholders = [crashlyticsCollectionEnabled:"true"]
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

}