写入SharedPreferences文件时出现OutOfMemoryError

时间:2014-03-17 16:19:57

标签: android out-of-memory sharedpreferences

我发现了这个好奇的OutOfMemoryError,我想知道是否有其他人遇到过它。我稍微违反了SharedPreferences的规则,并将一些模型对象存储为字符串,但这些对象很小。

java.lang.OutOfMemoryError
at com.android.internal.util.FastXmlSerializer.(FastXmlSerializer.java:55)
at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:177)
at android.app.SharedPreferencesImpl.writeToFile(SharedPreferencesImpl.java:596)
at android.app.SharedPreferencesImpl.access$800(SharedPreferencesImpl.java:52)
at android.app.SharedPreferencesImpl$2.run(SharedPreferencesImpl.java:511)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:841)

2 个答案:

答案 0 :(得分:0)

OOM错误可能发生在应用程序的任何地方。

它只是说:嘿,我试图分配一些东西,但我失去记忆。遗憾。

这可能发生:你在你的应用程序中加载了一个非常大的图像,并且在OOM之前只剩下很少的字节:然后你有一个简单的解析器来分配字符串和东西......这可以是OOM。

你的问题在别处:)

答案 1 :(得分:-1)

尝试在清单文件的android:largeHeap="true"标签下添加<application>。这可能会解决您的错误。