Ошибка вне памяти в эмуляторе Android, но не на устройстве

В Android-эмуляторе, когда я выхожу из своего приложения и запускаю его сразу, я получаю

OutOfMemoryError: bitmap size exceeds VM budget. 

Но на самом устройстве этого не происходит. Зачем?

На эмуляторе размер максимальной кучи по умолчанию составляет около 13 МБ.

На устройстве это зависит от телефона и версии Android. На моем Motorola Droid максимальный размер кучи составляет около 21-22 МБ, а на моем HTC Desire – около 32 МБ.

Вот почему у вас авария на эмуляторе, а не на вашем устройстве.

Если вы хотите контролировать размер кучи приложения, вы можете вызвать аналогичный метод:

 protected void displayMemoryUsage(String message) { int usedKBytes = (int) (Debug.getNativeHeapAllocatedSize() / 1024L); String usedMegsString = String.format("%s - usedMemory = Memory Used: %d KB", message, usedKBytes); Log.d(TAG, usedMegsString); } 

Увеличьте ОЗУ AVD и максимальный размер кучи VM-VM в опциях VM.

Для этого перейдите к

Окно -> AVD Manager -> Виртуальные устройства -> Изменить.

Вам нужно увеличить размер кучи для эмулятора – он работал для меня, я увеличил его с 16 М до 32 М

Вот ленив, как найти варианты манипулирования heapsize для эмулятора от Andriod studio 1.2.0

  1. Инструменты меню-> Android-> AVD Manager
  2. Редактировать виртуальное устройство по выбору
  3. Нажмите дополнительные настройки и прокрутите вниз

Изменение кучи VM в андроид-студии

Вероятно, это потому, что у вас на устройстве больше памяти, чем у вашего эмулятора. Этот вопрос SO показывает, как увеличить размер вашего эмулятора.

Кроме того, вы можете увеличить размер кучи Java VM .

Увеличьте размер выделенной памяти …

Используйте android: largeHeap = истинный тег в теге приложения вашего манифеста.