我已经将收集到的数据分享给了下面的Firebase Crashlytics。许多用户因此而崩溃。我该如何解决这个问题?
致以问候。
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference
at com.myproject.utils.PreferencesUtils.setAdmobEnable(PreferencesUtils.java:3)
at com.myproject.ui.MainActivity$9.onDataChange(MainActivity.java:220)
BaseActivity类:
protected Context mContext;
PreferencesUtils类:
public static boolean getAdMobEnable(final Context context) {
SharedPreferences preferences = context.getSharedPreferences(
Constants.SHARED_PREFERENCE, 0
);
return preferences.getBoolean(Constants.ADMOB_ENABLE, true);
}
public static void setAdmobEnable(final Context context, boolean value) {
SharedPreferences preferences = context.getSharedPreferences(
Constants.SHARED_PREFERENCE, 0
);
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean(Constants.ADMOB_ENABLE, value);
editor.apply();
}
我正在使用下面的代码
PreferencesUtils.setAdmobEnable(mContext, true);
或
if (user.membership == null || user.membership != 1) {
//user.membership is an Integer data and this data is downloaded with Firebase realtime database.
PreferencesUtils.setAdmobEnable(mContext, true);
} else {
PreferencesUtils.setAdmobEnable(mContext, false);
}
发布于 2021-06-25 03:07:39
您正在尝试对未定义的变量使用Context#getSharedPreferences
。
如果你正在使用框架,你应该定义你的Context mContext
或者实例化你的类。如果你不遵循框架或库的需求,它们就不能施展魔力。
https://stackoverflow.com/questions/68121360
复制相似问题