Внешнее распределение слишком велико для этого процесса в Android
Я получаю ошибки "внешнего распределения слишком большого для этого процесса" в моем приложении. Множество из них сразу:
11-16 10:56:59.230: ERROR/dalvikvm-heap(2875): 1303680-byte external allocation too large for this process.
11-16 10:56:59.230: ERROR/GraphicsJNI(2875): VM won't let us allocate 1303680 bytes
11-16 10:56:59.230: ERROR/dalvikvm-heap(2875): 1536000-byte external allocation too large for this process.
11-16 10:56:59.230: ERROR/GraphicsJNI(2875): VM won't let us allocate 1536000 bytes
Похоже, что они создаются во время рендеринга макета после загрузки больших растровых изображений. Ошибки, однако, не создаются, пока растровое изображение декодируется.
Как я могу отладить эти ошибки? Любые дополнительные указатели?
Ответы
Ответ 1
Комментарий adamp был ответом в моем конкретном случае:
Структура часто захватывает представления на экране во временные растровые изображения для производительность графики. Это выглядит как ваше приложение подталкивает его предел памяти уже и это ударяет его. Взгляните на другие предложения по ограничению использования памяти приложения.
Ответ 2
Если вы используете потоки, отладчик может быть источником проблемы. Если вы запустите приложение под отладчиком, то все созданные потоки будут сохранены отладчиком, даже когда они будут завершены. Это приводит к ошибкам памяти, которые не будут выполняться, когда приложение работает без отладчика.
http://code.google.com/p/android/issues/detail?id=7979