我在Google Play上有應用程序,在大多數設備上它工作得很好,但在一些三星(SM-G531H,SM-G530BT),華爲,聯想設備上它看起來像它崩潰getSharedPreferences
調用。getSharedPreferences在某些設備上返回空指針豁免
我採取上下文的引用從onAttach(Context context)
在片段方法(ⅰ不是要求getSharedPreferences
之前onAttach
)
@Override
public void onAttach(Context context) {
super.onAttach(context);
mContext = context;
//init firebase analytics
mFirebaseAnalytics = FirebaseAnalytics.getInstance(context);
}
我有構造sharedPreference
助手類
public UserStats(Context mContext) {
CRASH HERE
sharedPreferences = mContext.getSharedPreferences(PREF_USER,Context.MODE_PRIVATE);
}
這是在該方法中調用sharedPreference的片段
private void setGoal(int calories){
new UserStats(mContext).setNewGoal(calories);
tvGoal.setText("Goal\n" + calories + " Cal");
}
任何想法爲什麼會發生?以及如何避免它? (我無法調試它,我收到Firebase控制檯中的崩潰)
請發佈所有相關代碼。 – earthw0rmjim
嘿,我看到[onAtttach()'調用不一致[如上所述](https://stackoverflow.com/questions/32077086/android-onattachcontext-not-called-for-api-23)。你檢查了嗎?我會說找尋替代品。 – Shaishav
有趣,但我之前使用getActivity(),結果相同 –