Android 当用户更改首选项时,如何在运行时禁用Crashlytics/Fabric

Android 当用户更改首选项时,如何在运行时禁用Crashlytics/Fabric,android,crashlytics,twitter-fabric,Android,Crashlytics,Twitter Fabric,我正在使用com.crashlytics.sdk.android:crashlytics:2.3。2@aarcrashlytics的版本,如果用户选择退出,我将禁用崩溃报告 我尝试了解决方案,但仍然不起作用,碰撞报告仍被发送到Fabric 我是这样做的: Preference errorReportingEnabled = findPreference(MatlistanPrefs.BUGREPORTS_SEND_AUTOMATICALLY); errorReportingEnabled

我正在使用
com.crashlytics.sdk.android:crashlytics:2.3。2@aar
crashlytics的版本,如果用户选择退出,我将禁用崩溃报告

我尝试了解决方案,但仍然不起作用,碰撞报告仍被发送到Fabric

我是这样做的:

Preference errorReportingEnabled = findPreference(MatlistanPrefs.BUGREPORTS_SEND_AUTOMATICALLY);
    errorReportingEnabled.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
        @Override
        public boolean onPreferenceChange(Preference preference, Object newValue) {

            Boolean value = (Boolean) newValue;

            Fabric.with(DataCollectionSettingsActivity.this, new Crashlytics.Builder().
                    core(new CrashlyticsCore.Builder().disabled(!value).build())
                    .build());
            return true;
        }
    });
这个问题有有效的解决办法吗


谢谢。

初始化时的结构将创建一个单例实例,并在调用
Fabric.with(…)
时返回相同的实例。所以,您的
onPreferenceChange
中的代码对Fabric类没有影响

若库本身提供了启用或禁用crashlytics的方法,则此问题的唯一解决方案是。因此,到目前为止(
crashlytics:2.5.2
)没有在运行时启用/禁用crashlytics的解决方案。您必须在启动时这样做:

Fabric.with(this, new Crashlytics.Builder()
    .core(new CrashlyticsCore.Builder()
    .disabled(true).build()).build());