Не удалось выделить память: 8


369

С сегодняшнего дня, когда я пытался запустить приложение в NetBeans на платформе Android 2.3.3, он показывает мне, что:

Не удалось выделить память: 8

Это приложение запросило Runtime прекратить его необычным способом. Пожалуйста, обратитесь в службу поддержки приложения для получения дополнительной информации.

и эмулятор не хочет запускаться

Это первый раз, когда я вижу это, и у Google нет ответов на этот вопрос, я пробовал даже с 2 версиями NetBeans 6.9.1 и 7.0.1, все та же ошибка.


3
Просто любопытно, почему вы используете NetBeans против Eclipse. Я использую NetBeans для других целей (а именно, для php), но только что обнаружил, что проще использовать eclipse для Android. Каковы, на ваш взгляд, преимущества перед затмением?
SBerg413

3
Я просто никогда не использовал Eclipse раньше, но я не знаю, почему, я ненавижу это, причина, это даже сложно в GUI против NetBeans, но на данный момент я загружаю его, чтобы попытаться, если проблема исчезнет, ​​я сделаю Android материал только в нем.
Денис

47
Вау, этот комментарий был резней запятой. В любом случае, убедитесь, что ваш AVD использует соответствующий объем оперативной памяти (т. Е. Достаточный для работы, но не больше, чем ваш компьютер может обработать). Это устанавливается при создании виртуального устройства.
Глендон Труллингер

2
Просто для справки, у меня есть Core i7 с 16 ГБ оперативной памяти, maxxed out RAM на моих AVD, и все они, к сожалению, отстают: /
Джек

1
У меня есть Windows 8 64-битная машина, работающая на процессоре Intel Core i7. Мне пришлось изменить настройки оперативной памяти для этого AVD (Nexus 7) до 512 МБ, чтобы он работал.
Игорь Ганапольский

Ответы:


373

Я понял. Проблема была в объеме оперативной памяти, который я указал для виртуальной машины, и это было 1024 МБ, теперь у меня есть 512 МБ, и это нормально, теперь мне нужно найти, как улучшить это количество оперативной памяти, 512 не так много, и машина немного тормозит.


20
У меня та же проблема с этим. У меня 8 ГБ ОЗУ на моей машине, 6 ГБ свободно, а эмулятор Android говорит, что он не может выделить 1 ГБ?
Strozykowski

5
У меня также есть 8 ГБ памяти Ram, но SDK говорит мне, что я не могу использовать его больше, чем 512 :)
Denees

5
Еще одно исправление, чтобы добавить. Иногда установка ОЗУ на более низкие значения не работает. В этом случае попробуйте запустить эмулятор из командной строки с чем-то вродеemulator-x86 -avd <your_avd_name>
Михаил Гайдай

14
Только что получил решение: нужно принудительно указать разрешение AVD: 800 x 1280. Он запускает мой AVD как то, что мне требовалось
Нирав Шах,

4
Проблема возникает из-за любой темы оформления, которая добавляет значение 1024 hw.ramSizeв config.ini ( Device Ram Sizeв списке Hardware GUI). Убедитесь, что вы выбрали «обложку» с более низким значением, или используете разрешение вручную и удалите эту строку из списка «Оборудование» - вы не можете удалить ее, когда выбрана обложка.
RedGlyph

61

Ссылаясь на Android: не удалось выделить память и первый комментарий под принятым ответом, мне помогло изменение «1024» на «1024MB». Жалко, но работает.


29
«МБ» не распознается эмулятором, что заставляет его использовать значение по умолчанию 256 МБ. Помните, что указанная вами сумма не та, которую вы получите!
RedGlyph

1
Если посмотреть в разделе «Приложения», «Runnning», общий объем памяти составляет около 240 МБ, поэтому кажется, что он возвращается к 256 МБ.
Jishi

Добавьте в окно Run Configurations параметр -memory 512 по этой ссылке,
исправив

43

В моем случае:

  • Используя встроенный WXGA720 для симуляции устройства 720p, всегда получал эту ошибку
  • Вручную установить разрешение AVD на 720 х 1280, у меня работает

надеюсь, это поможет ~


Аналогично здесь, по умолчанию для 7 "WXGA800 не удалось, и настройка 800 x 1280 работает.
xandy

30

Работает вместо 512 Мб. Ни один из вышеперечисленных методов не работает для меня.


Ошибка «Не удалось выделить память: 8» исчезла после уменьшения размера оперативной памяти с 1024 до 768 МБ.
curd0 29.12.12

многие из них говорят одно и то же, чтобы исправить размер 512 МБ. Но это не сработало вообще
Стив

30

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

Проблема не связана с разрешением эмулятора или OpenGL, а также с тем, сколько памяти имеет ваш компьютер. У меня на компьютере 24 ГБ памяти, и большую часть времени я запускаю с hw.ramSize=1024ошибкой 8. В других случаях она работает просто отлично без каких-либо изменений конфигурации. Надеюсь, вы это поняли: я вообще не менял конфигурацию эмулятора, но иногда он запускается, а иногда не работает.

С большой вероятностью это связано с фрагментацией памяти. Я рекомендую уменьшить значение hw.ramSizeвременного решения.


2
При всем уважении, ваш ответ также является чисто предположением; Для меня у меня нет проблем с запуском любого эмулируемого устройства с виртуальной оперативной памятью, установленной на 2048 (я не пробовал выше). Однако эти устройства будут работать только тогда, когда я получу доступ к своему компьютеру через удаленный рабочий стол . Так что для меня это проблема графики, а не фрагментации памяти. Я могу достоверно доказать это, перепрыгивая сеанс назад и вперед между локальным и удаленным. Тот же сеанс, тот же экземпляр AVD-менеджера, только без ужасных карт NVIDIA и их чудовищных драйверов в одном сценарии. (Но это напыщенная речь для другой темы).
s.co.tt

Если это «фрагментация ОЗУ», мы могли бы проверить это с помощью одной из этих глупых бесплатных программ «дефрагментации ОЗУ», верно?
Пользователь

17

Похоже, есть тысячи различных исправлений для этого ... у меня ничего из вышеперечисленного не сработало, но то, что работало, было запустить AVD из командной строки emulator-arm.exe @ AVD-NAME

Каким-то образом, если запустить только с emulator.exe, я получу то же сообщение об ошибке, что и при попытке запуска через Eclipse.


У вас может быть та же проблема, что и у меня. Файлы DLL загружаются при запуске эмулятора из одного места, а не при запуске из другого.
Mjaggard

14

Я понял, что решение этой проблемы связано с выделением памяти Eclipse при запуске приложения в обычном режиме. Я только что установил флажок «Запуск от имени администратора» в свойствах ярлыка для Eclipse, и теперь он позволяет мне выделять больше памяти для AVD.

Надеюсь, это поможет.


13

Я преодолел эту проблему, изменив размер экрана устройства.

Я обнаружил, что если вы указываете 1024 МБ оперативной памяти, то вы должны указать размер экрана устройства только в hdpi, а если это 512 МБ оперативной памяти, то это должен быть MDDP или другие.

Итак, можно четко сказать, что размер оперативной памяти следует указывать в соответствии с размером экрана. Если указать размер оперативной памяти 1024 при сохранении размера экрана устройства в mdpi, это приведет к вышеупомянутой ошибке, т. Е. «Не удалось выделить память: 8». Это приложение запросило среду выполнения, чтобы завершить его необычным способом.

Пожалуйста, обратитесь в службу поддержки приложения для получения дополнительной информации. "

или

сделайте ваши настройки в AVD Manager следующим образом:

[2013-01-11 14:44:01 - SDK Manager] hw.sensors.orientation = yes

[2013-01-11 14:44:01 - SDK Manager] hw.camera.front = нет

[2013-01-11 14:44:01 - SDK Manager] hw.gps = yes

[2013-01-11 14:44:01 - SDK Manager] skin.dynamic = no

[2013-01-11 14:44:01 - SDK Manager] hw.keyboard = no

[2013-01-11 14:44:01 - SDK Manager] vm.heapSize = 32

[2013-01-11 14:44:01 - SDK Manager] hw.ramSize = 343


Это сработало: [2015-07-23 12:54:59 - SDK Manager] disk.dataPartition.size = 500M [2015-07-23 12:54:59 - SDK Manager] hw.gpu.enabled = yes [2015- 07-23 12:54:59 - менеджер SDK] hw.audioInput = yes [2015-07-23 12:54:59 - менеджер SDK] hw.sensors.orientation = yes [2015-07-23 12:54:59 - Менеджер SDK] hw.camera.front = нет [2015-07-23 12:54:59 - Менеджер SDK] hw.gps = yes [2015-07-23 12:54:59 - Менеджер SDK] skin.dynamic = нет [2015-07-23 12:54:59 - SDK Manager] hw.keyboard = yes [2015-07-23 12:54:59 - SDK Manager] vm.heapSize = 32 [2015-07-23 12:54 : 59 - SDK Manager] hw.ramSize = 512
пользователь914425,

6

Я просмотрел все другие решения, упомянутые в этой теме, и не нашел ничего, что работало, поэтому я немного покопался. По какой-то причине мне не удалось запустить версию API Google. Я изменил его обратно на ваниль и больше не вылетает.

У меня должна быть какая-то другая проблема, но возможно это поможет кому-то ...


Странный. Я был настроен на ванильную версию, но переход на Google API решил эту проблему. +1 за идею в любом случае!
Пол

6

Посмотрите на официальный выпуск 33930 . Там указано, что это может быть связано с запуском OpenGL во время запуска эмулятора. Другие пишут, что он падает только при использовании скина WXGA800 и предлагают вручную установить разрешение 800x1280.

Кроме того, есть ZIP-файлы, предназначенные для ручного понижения вашего Android SDK до версии 19, и plattform-tools до версии 11. Это также может помочь временно устранить проблему.


Это может быть связано с моей проблемой. Файлы DLL загружаются при запуске эмулятора из одного места, а не при запуске из другого.
Маджгард

Там должно быть больше к этому. Сначала установка WXGA800, а затем изменение разрешения вручную на 1280x800 по-прежнему приводит к сбою AVD. Только удаление hw.ramSize=1024решает проблему (вы не можете сделать это, если выбран WXGA, вам нужно использовать настройки разрешения вручную).
RedGlyph

5

У меня 16 ГБ и четырехъядерный процессор 3.4 ГГц на моей машине. Виртуальная машина не позволит мне запустить ее в 1024. Я увеличил его до 878 МБ, потому что он не удался на 880 с тем же сообщением. Кажется, это самый оперативный диск, который я могу выделить для эмулятора. Это все еще медленно, но я предполагаю, что это лучше, чем 512 МБ.


5

Я изменил настройки DPI своего монитора из параметров запуска AVD и синхронизировал их с исходными и текущими настройками монитора, и это сработало.



3

У меня была та же самая проблема, но прежде, чем я получил проблему, она попросила меня захватить источник видео.

Я отключил поддержку камеры, и я смог использовать 1024MB of RAM.

Использование Windows 64bit, Xoom (Android 3.0).


3

В моем случае изменение разрешения экрана с WVGA720 на WSVGA у меня работает.


3

Проблема в фрагментации памяти. ОС должна выделить весь ОЗУ, который вы указали для vm (скажем, 1 Гб), как один непрерывный блок. Иногда такого блока нет. Чтобы это исправить, закройте запущенные программы, затем запустите avd и запустите вашу виртуальную машину.


2

Что работало для меня на Windows было:

1) Закрытие Eclipse 2) Запуск Avd UI 3) Закрытие всех запущенных процессов, особенно тех, которые имеют большой объем памяти, таких как Chrome, explorer.exe и т. Д. 4) Запустите эмулятор 5) Win


2

Убедитесь, что IntelHAXM установлен правильно. Недостаточно загрузить и «установить» его через SDK Manager. Вам необходимо вручную установить его из:

android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

Также убедитесь, что Intel Virtual Technology включена в вашем BIOS.

Следуйте руководству на developer.android.com или инструкциям по установке Intel .


2

Вам нужно только отредактировать оперативную память вашего виртуального устройства, сделав ее ниже! Попробуйте 20 МБ, и все заработает!


1

Я заметил, что это было связано только с одним из всех остальных, с которыми я работал нормально. Я удалил его и создал новый, и теперь он работает.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.