我发现了这个好奇的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)
答案 0 :(得分:0)
OOM错误可能发生在应用程序的任何地方。
它只是说:嘿,我试图分配一些东西,但我失去记忆。遗憾。
这可能发生:你在你的应用程序中加载了一个非常大的图像,并且在OOM之前只剩下很少的字节:然后你有一个简单的解析器来分配字符串和东西......这可以是OOM。
你的问题在别处:)
答案 1 :(得分:-1)
尝试在清单文件的android:largeHeap="true"
标签下添加<application>
。这可能会解决您的错误。