我很困惑,拋出一個不應該的東西。 錯誤是:SharedPreferences - java.lang.Boolean不能轉換爲java.lang.String
java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String
但是,我的代碼不會嘗試投布爾爲String O_O 是否有可能,編譯器是錯誤的指示,其中異常從哪裏來?我使用的是華爲
這部分觸發異常:
if(SharedPreferencesManager.getUserMRZ(ScanEUID.this).equals("0")
&& SharedPreferencesManager.getUserDocumentIdFront(ScanEUID.this) != null
&& SharedPreferencesManager.getUserDocumentIdBack(ScanEUID.this) != null)
{
相關的方法有以下幾種
public static String getUserMRZ(Context context){
return getSharedPreferences(context).getString(Constants.USER_HAS_MRZ, "0");
}
public static String getUserDocumentIdFront(Context context) {
return getSharedPreferences(context).getString(Constants.USER_DOCUMENT_ID_FRONT, null);
}
public static String getUserDocumentIdBack(Context context) {
return getSharedPreferences(context).getString(Constants.USER_DOCUMENT_ID_BACK, null);
}
的setMRZ方法
public static void setUserMRZ(Context context, String has_mrz){
final SharedPreferences.Editor editor = getSharedPreferences(context).edit();
editor.putString(Constants.USER_HAS_MRZ, has_mrz);
editor.apply();
}
如果曾經有一個字符串機智h鍵(USER_HAS_MRZ),即使意外,它仍會保留在那裏,直到您清除應用程序的數據或重新安裝。嘗試重新安裝它,看看它是否仍然存在。 – Denny
檢查您首先創建USER_HAS_MRZ首選項的位置。您可能正在通知一個布爾值。 – Jonas452
卸載它,不幸的是同樣的錯誤。太奇怪了。 – Isabelle