У меня есть действительно длинный набор с 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. Я не выполняю командную строку.
Похоже, что для приложений Android существует жесткое ограничение в 16 МБ кучи, которое можно обойти, только изменив исходный код Android . Ваша программа достигла этого предела: «Недостаточно памяти: размер кучи = 15559 КБ». Вам нужно будет выяснить, как уменьшить использование памяти вашей программой. Хорошее руководство для этого находится здесь .
Если вам нужно вывести строку с таким размером, попробуйте записать ее в файл на SD-карте. Это единственный способ получить эту строку из вашего приложения. Если вы добавляете элементы по одному в нужный файл, вам потребуется столько памяти.