OutOfMemoryError what to increase and how?

2019-01-23 16:43发布

I have a really long collection with 10k items, and when running a toString() on the object it crashes. I need to use this output somehow.

05-21 12:59:44.586: ERROR/dalvikvm-heap(6415): Out of memory on a 847610-byte allocation.
05-21 12:59:44.636: ERROR/dalvikvm(6415): Out of memory: Heap Size=15559KB, Allocated=12932KB, Bitmap Size=613KB
05-21 12:59:44.636: ERROR/AndroidRuntime(6415): Uncaught handler: thread main exiting due to uncaught exception
05-21 12:59:44.636: ERROR/AndroidRuntime(6415): java.lang.OutOfMemoryError
05-21 12:59:44.636: ERROR/AndroidRuntime(6415):     at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:97)
05-21 12:59:44.636: ERROR/AndroidRuntime(6415):     at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:155)
05-21 12:59:44.636: ERROR/AndroidRuntime(6415):     at java.lang.StringBuilder.append(StringBuilder.java:202)
05-21 12:59:44.636: ERROR/AndroidRuntime(6415):     at java.util.AbstractCollection.toString(AbstractCollection.java:384)

I need step by step guide how to increase the heap for and Android application. I don't run the command line.

2条回答
仙女界的扛把子
2楼-- · 2019-01-23 17:18

It seems that there is a hard limit of 16 MB heap space on Android apps that can only be worked around by altering the Android source. Your program has hit this limit: "Out of memory: Heap Size=15559KB". You'll need to figure out how to reduce your program's memory usage. A nice guide to doing this is here.

查看更多
对你真心纯属浪费
3楼-- · 2019-01-23 17:26

If you need to output a string with that size try to write it into a file on the SD-Card. That is the only way I can think of to get this string out of your app. If you append the items one by one to the file you want need that much memory.

查看更多
登录 后发表回答