我正在使用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;
}
});
这个问题有解决方法吗?
感谢。
答案 0 :(得分:5)
Fabric on initialization创建一个单例实例,并在您调用Fabric.with(...)
时返回相同的实例。因此,onPreferenceChange
中的代码对Fabric类没有影响。
此问题的唯一解决方案是,如果库本身提供启用或禁用崩解的方法。因此,向上现在(crashlytics:2.5.2
)无解决方案在运行时启用/禁用crashlytics。你必须在启动时这样做:
Fabric.with(this, new Crashlytics.Builder()
.core(new CrashlyticsCore.Builder()
.disabled(true).build()).build());