我在方法中有以下代碼。這是整個方法:NullPointerException似乎不可能
private boolean isPlaceEligible(String eligibleId) {
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
String current = sharedPrefs.getString(
PrefsActivity.AUTO_INELIGIBLE_ID, PrefsActivity.AUTO_INELIGIBLE_ID_DEF);
return !eligibleId.equals(current);
}
eligibleId被稱爲非空字符串。 PrefsActivity.AUTO_INELIGIBLE_ID是一個String鍵,而PrefsActivity.AUTO_INELIGIBLE_ID_DEF是該鍵的默認字符串。
這些SharedPreferences的JavaDocs沒有說任何關於返回null的內容,但是我有一些市場控制檯的崩潰報告說這個方法在NullPointerException異常時崩潰。根據我得到的報告數量,我估計這發生在300個用戶中的一個,可能更少。其中兩人通過電子郵件告訴我這件事,並表示這件事發生在100%的時間。
任何想法?
你傳遞eligibleId的方法之前捕獲空引用? –
什麼線實際上是拋出NPE? – Haphazard
任何機會在它作爲成員的Activity之前的上下文被調用之前(在onCreate之前?) – antlersoft