android - SharedPreferences - java.lang.Boolean 不能转换为 java.lang.String

标签 android sharedpreferences

我对不应该抛出的异常感到困惑。 错误如下:

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

但是,我的代码不会尝试将 bool 值转换为字符串 Ô_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();
}

最佳答案

检查你的 setter,我刚刚遇到了同样的问题,我发现我错误地做了一个错误的副本/意大利面,并在 setter 中使用了该值的键作为 bool 值......

关于android - SharedPreferences - java.lang.Boolean 不能转换为 java.lang.String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43895531/

相关文章:

java - Android Studio itemsAdapter 和自定义 ListView 不起作用

Android:修改另一个应用的SharedPreferences

java - 添加几个具有不同配置的 appWidgets?

java - Java AsyncTask 的使用

android - Arraylist 的共享首选项

android - 使用getDefaultSharedPreferences,上下文有问题

java - 保存多选 ListView 的状态

android - 从android中的指定组获取联系人

java - 如何获取 setOnItemSelectedListener 之外的变量的更新值?

Android NDK 找到动态链接 : unable to debug library