OutOfMemoryError что увеличить и как? - PullRequest
12 голосов
/ 21 мая 2010

У меня очень длинная коллекция с 10k элементов, и при запуске toString () на объекте он падает Мне нужно как-то использовать этот вывод.

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)

Мне нужно пошаговое руководство, как увеличить кучу для Android-приложения. Я не запускаю командную строку.

Ответы [ 2 ]

8 голосов
/ 21 мая 2010

Кажется, что для приложений Android существует жесткое ограничение в 16 МБ кучи, которое можно обойти только путем изменения источника Android . Ваша программа достигла этого предела: «Недостаточно памяти: размер кучи = 15559 КБ». Вам необходимо выяснить, как уменьшить использование памяти вашей программой. Хорошим руководством для этого является здесь .

0 голосов
/ 21 мая 2010

Если вам нужно вывести строку такого размера, попробуйте записать ее в файл на SD-карте. Это единственный способ вытащить эту строку из вашего приложения. Если вы добавляете элементы один за другим в нужный файл, вам потребуется столько памяти.

...