Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SharedReferences奇怪的警告_Android - Fatal编程技术网

Android SharedReferences奇怪的警告

Android SharedReferences奇怪的警告,android,Android,我使用SharedReference,有时我在logcat中收到以下警告: 08-27 11:46:55.453: W/SharedPreferencesImpl(21824): getSharedPreferences 08-27 11:46:55.453: W/SharedPreferencesImpl(21824): org.xmlpull.v1.XmlPullParserException: Map value without name attribute: string 08-27 1

我使用SharedReference,有时我在logcat中收到以下警告:

08-27 11:46:55.453: W/SharedPreferencesImpl(21824): getSharedPreferences
08-27 11:46:55.453: W/SharedPreferencesImpl(21824): org.xmlpull.v1.XmlPullParserException: Map value without name attribute: string
08-27 11:46:55.453: W/SharedPreferencesImpl(21824):     at com.android.internal.util.XmlUtils.readThisMapXml(XmlUtils.java:568)
08-27 11:46:55.453: W/SharedPreferencesImpl(21824):     at com.android.internal.util.XmlUtils.readThisValueXml(XmlUtils.java:821)
08-27 11:46:55.453: W/SharedPreferencesImpl(21824):     at com.android.internal.util.XmlUtils.readValueXml(XmlUtils.java:755)
08-27 11:46:55.453: W/SharedPreferencesImpl(21824):     at com.android.internal.util.XmlUtils.readMapXml(XmlUtils.java:494)
08-27 11:46:55.453: W/SharedPreferencesImpl(21824):     at android.app.SharedPreferencesImpl.loadFromDiskLocked(SharedPreferencesImpl.java:113)
08-27 11:46:55.453: W/SharedPreferencesImpl(21824):     at android.app.SharedPreferencesImpl.access$000(SharedPreferencesImpl.java:48)
08-27 11:46:55.453: W/SharedPreferencesImpl(21824):     at android.app.SharedPreferencesImpl$1.run(SharedPreferencesImpl.java:87)
它在大多数情况下都有效,但测试人员说有时他们会遇到问题。有时,加载回根本不起作用。 这是我的
sharedprefer
课程:

public class SharedPreffer {

    String PREF_FILE_NAME = "saveFile";

    public SharedPreffer(Context context) {
        this.context = context;
    }

    Context context;
    public static final String DEFAULT_VALUE = "";

    public void savePreferences(String key, int value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(
                PREF_FILE_NAME, 0);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(key, Integer.toString(value));
        editor.commit();
    }

    public void savePreferences(String key, String value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(
                PREF_FILE_NAME, 0);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(key, value);
        editor.commit();
    }

    public void savePreferences(String key, Boolean value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(
                PREF_FILE_NAME, 0);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(key, Boolean.toString(value));
        editor.commit();
    }


    public String loadPreferences(String key) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_FILE_NAME, 0);

        return sharedPreferences.getString(key, DEFAULT_VALUE);

    }

}

有人能给我一些提示吗?

无名称属性的映射值:string
表示您的
字符串键
为空

在方法开头检查该情况并抛出异常如果出现问题,您将从何处看到传递这些无效键:

if (key == null || key.equals("")) throw new IllegalArgumentException("Key can't be null or empty string");

我多次收到同样的警告


每当我使用共享偏好时。后来我注意到,每当应用程序因运行时异常而崩溃时,就会显示此警告。并重新启动使用共享首选项获取首选项值的上一个活动。然后我用它得到了这个结果,所以有时候他们会有问题,这是一个很好的问题描述。你能详细说明一下吗?也许你想写一个空的引用名,“没有名称属性的映射值”你检查过这两个链接了吗?如果我想在默认加载回时使用“”空字符串呢?当根本没有存储值时。@AdamVarhegyi没关系,因为值可以是“”。钥匙不能。