android getSharedPreferences错误:没有name属性的map值:boolean

时间:2011-03-20 12:21:27

标签: android

我试图弄清楚当我尝试获取应用程序的共享首选项时,它在启动时发生此错误的原因。代码只是:

settings = this.getSharedPreferences(Globals.PREFS_NAME,0)

看起来像是一个腐败,但是因为我已经将它安装在多个设备上并且发生了同样的错误,因此该错误存在于应用程序中。我卸载了应用程序并重新安装它无济于事。还做了一个完全干净的构建。我用Google搜索错误,似乎无法在其上找到任何内容。

我以前工作得很好。所以我很难过。任何线索都非常高度赞赏......

的问候,

抢劫

W/ApplicationContext( 1541): getSharedPreferences
W/ApplicationContext( 1541): org.xmlpull.v1.XmlPullParserException: Map value without name attribute: boolean
W/ApplicationContext( 1541):    at com.android.internal.util.XmlUtils.readThisMapXml(XmlUtils.java:521)
W/ApplicationContext( 1541):    at com.android.internal.util.XmlUtils.readThisValueXml(XmlUtils.java:733)
W/ApplicationContext( 1541):    at com.android.internal.util.XmlUtils.readValueXml(XmlUtils.java:667)
W/ApplicationContext( 1541):    at com.android.internal.util.XmlUtils.readMapXml(XmlUtils.java:470)
W/ApplicationContext( 1541):    at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:376)
W/ApplicationContext( 1541):    at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:146)
W/ApplicationContext( 1541):    at net.robmunro.mypod.WelcomeActivity.onEWCreate(WelcomeActivity.java:160)
W/ApplicationContext( 1541):    at net.robmunro.mypod.AbstractEWActivity.onCreate(AbstractEWActivity.java:25)
W/ApplicationContext( 1541):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
W/ApplicationContext( 1541):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
W/ApplicationContext( 1541):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
W/ApplicationContext( 1541):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
W/ApplicationContext( 1541):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
W/ApplicationContext( 1541):    at android.os.Handler.dispatchMessage(Handler.java:99)
W/ApplicationContext( 1541):    at android.os.Looper.loop(Looper.java:123)
W/ApplicationContext( 1541):    at android.app.ActivityThread.main(ActivityThread.java:3683)
W/ApplicationContext( 1541):    at java.lang.reflect.Method.invokeNative(Native Method)
W/ApplicationContext( 1541):    at java.lang.reflect.Method.invoke(Method.java:507)
W/ApplicationContext( 1541):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
W/ApplicationContext( 1541):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
W/ApplicationContext( 1541):    at dalvik.system.NativeStart.main(Native Method)

3 个答案:

答案 0 :(得分:8)

你能在模拟器上重现这个吗?如果是,那么您可以使用Eclipse DDMS工具提取prefs文件来调查prefs文件的内容。

答案 1 :(得分:3)

感谢小费。 prefs文件是

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean value="false" />
<boolean name="initialised" value="true" />
<boolean name="upd.auto" value="true" />
<long name="backup.last" value="1300662039054" />
<string name="msg.read">0.995.18Beta</string>
</map>

原来我正在为prefs写一个空的首选项名称 - 所以错误是正确的 - 虽然我不认为API应该让你这样做,因为prefs不能在那之后读取。

无论如何,有点像男生错误,但到了那里......

感谢您的快速回复, 抢劫

答案 2 :(得分:1)

就我而言

myProject.prototype.makeAjax = function() {
  var that = this;

  $.get('http://www.example.com/todoItems', function success(items) {
   that.addItemsToList(items)
  });
}

&#34; docsDownloadStatus&#34;由于整个共享的pref文件已损坏,因此未初始化。 初始化docsDownloadStatus键后,一切正常。