我为一个不应该出现的异常而感到困惑。
错误如下:

java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String


但是,我的代码没有尝试将布尔值强制转换为StringÔ_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();
}

最佳答案

检查您的设置器,我遇到了同样的问题,我发现我错误地进行了错误的复制/粘贴,并在设置器中将键用于该值作为布尔值...

08-25 18:20