Подтвердить что ты не робот

OutOfMemoryError, что увеличить и как?

У меня очень длинная коллекция с 10 тыс. элементов, а при запуске 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. Я не запускаю командную строку.

4b9b3361

Ответ 1

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

Ответ 2

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