java.lang.OutOfMemoryError приходит через некоторое время ...? - PullRequest
0 голосов
/ 05 июля 2011

Я работаю над приложением, в котором я рисую 300 линий на карте Google. Иногда оно будет работать нормально, но иногда выдает эту ошибку

FATAL EXCEPTION: main
07-01 10:33:38.990: ERROR/AndroidRuntime(10937): java.lang.OutOfMemoryError
07-01 10:33:38.990: ERROR/AndroidRuntime(10937):     at java.util.ArrayList.add(ArrayList.java:123)
07-01 10:33:38.990: ERROR/AndroidRuntime(10937):     at java.util.Collections$SynchronizedCollection.add(Collections.java:421)

Ответы [ 2 ]

0 голосов
/ 05 июля 2011

Убедитесь, что ваш ArrayList имеет достаточно большой начальный размер и что он не постоянно меняет свой размер при добавлении элементов. Изменение размера приведет к тому, что он будет создавать свою копию с большей емкостью каждый раз, когда будет превышен его текущий лимит. В качестве альтернативы вы можете использовать LinkedList или даже обычный массив, если размер должен оставаться фиксированным.

0 голосов
/ 05 июля 2011

Похоже, в вашем ArrayList слишком много элементов. Убедитесь, что в вашем ArrayList действительно всего 300 строк. Если вам больше не нужны точки в вашем ArrayList, обязательно удалите их из ArrayList или создайте новый ArrayList.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...