我对因不应该抛出的异常而感到困惑。
错误如下:
java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.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();
}
检查你的设置器,我刚刚遇到了同样的问题,我发现我错误地做了一个错误的复制/意大利面,并在设置器中使用了该值的键作为布尔值...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)