【问题标题】:How to Disable Crashlytics/Fabric at Runtime when User Changes Preferences当用户更改首选项时如何在运行时禁用 Crashlytics/Fabric
【发布时间】:2015-08-23 16:15:08
【问题描述】:

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

我尝试了this 解决方案,但仍然无法正常工作,崩溃报告仍在发送到 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;
        }
    });

这个问题有什么可行的解决方案吗?

谢谢。

【问题讨论】:

    标签: android crashlytics twitter-fabric


    【解决方案1】:

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

    如果库本身提供启用或禁用崩溃分析的方法,则此问题的唯一解决方案可能是。因此,直到现在 (crashlytics:2.5.2) 没有解决方案在运行时启用/禁用 crashlytics。你必须在启动时这样做:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-18
      • 2020-07-04
      相关资源
      最近更新 更多