Не вдалося розподілити пам'ять: 8


369

З сьогоднішнього дня, коли я намагався запустити додаток в NetBeans на платформі Android 2.3.3, він показує, що:

Не вдалося розподілити пам'ять: 8

Ця програма попросила Runtime припинити її незвичним чином. Для отримання додаткової інформації зверніться до служби підтримки програми.

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

Це вперше, коли я бачу це, і в Google немає жодних можливостей для цього, я спробував навіть з 2 версіями NetBeans 6.9.1 і 7.0.1, як і раніше однакова помилка.


3
Цікаво, чому ви використовуєте NetBeans vs Eclipse. Я використовую NetBeans для інших речей (а саме php), але мені просто стало легше використовувати eclipse для андроїд. Які, на вашу думку, переваги від затемнення?
SBerg413

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

47
Ого, цей коментар був розправою через коми. У будь-якому разі переконайтеся, що ваш AVD використовує належну кількість оперативної пам’яті (тобто достатньо для роботи, але не більше, ніж вміє працювати ваш комп’ютер). Це встановлюється під час створення віртуального пристрою.
Глендон Труллінгер

2
Для довідки, у мене Core i7 з 16 Гб оперативної пам’яті, максимум оперативної пам’яті на моїх AVD, і вони, на жаль, відстають: /
Джек,

1
У мене 64-бітна машина Windows 8, що працює на процесорі Intel i7. Мені довелося змінити параметри оперативної пам’яті для цього AVD (Nexus 7) до 512 Мб, щоб він працював.
ІгорГанапольський

Відповіді:


373

Я зрозумів це. Проблема полягала в кількості оперативної пам'яті, яку я вказав для віртуальної машини, і це було 1024 Мб, зараз у мене 512 МБ, і це нормально, тепер мені потрібно знайти, як покращити цю кількість оперативної пам'яті, 512 - це не так багато, і машина трохи тьмяна.


20
У мене те саме питання з цим. У мене 8 Гб оперативної пам’яті на моїй машині, 6 ГБ сидять безкоштовно, а емулятор Android каже мені, що він не може виділити 1 ГБ?
Строзиковський

5
У мене є 8 ГБ оперативної пам’яті, але 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у списку апаратних засобів графічного інтерфейсу). Переконайтесь, що виберіть або "шкіру" з меншим значенням, або скористатись роздільною здатністю вручну та видалити цей рядок зі списку обладнання.
RedGlyph

61

Посилання на Android: не вдалося виділити пам'ять, і її перший коментар під прийнятою відповіддю змінив "1024" на "1024MB". Жалко, але працює.


29
'MB' емулятором не розпізнається, змушує його використовувати значення 256 Мб за замовчуванням. Майте на увазі, що вказана сума - це не те, що ви отримаєте!
RedGlyph

1
Розглядаючи розділ Apps, Runnning, перераховано загальний об'єм пам'яті приблизно до 240 Мб, тому здається, що він повертається до 256 МБ.
джиші

Додайте у вікно "Конфігурації запуску" параметр -пам'ять 512 із цього посилання, зафіксувавши це для мене
GatesReign

43

У моєму випадку:

  • Використовуючи вбудований WXGA720 для імітації пристрою 720p, завжди виникала ця помилка
  • Вручну встановити роздільну здатність AVD на 720 x 1280, працює для мене

сподіваюся, що це допомагає ~


Подібний тут, за замовчуванням для 7 "WXGA800 не вдалося, і налаштування 800 x 1280 працює.
xandy

30

Натомість працює з 512 Мб. Жоден із перерахованих вище методів для мене не працює.


Помилка "Не вдалося розподілити пам'ять: 8" зникла після зменшення розміру оперативної пам'яті з 1024 до 768 Мбіт.
curd0

багато з них говорять те саме, щоби виправити розмір 512 Мб. Але це взагалі не працювало
Стів

30

Все, що ви читаєте тут і в інших місцях, - це чиста здогадка. Єдиний вірний спосіб вирішити цю проблему - це голосування за цей звіт про помилку .

Проблема не пов’язана з роздільною здатністю емулятора або OpenGL, а також з кількістю пам'яті у вашому комп’ютері. У мене на комп’ютері є 24 Гб пам’яті і більшу частину часу я біжуhw.ramSize=1024 я отримую помилку 8. В інших випадках це працює чудово, без змін конфігурації. Я сподіваюся, що ви це зрозуміли: я взагалі не змінив конфігурацію емулятора, але іноді він працює, а іноді виходить з ладу.

Існує велика ймовірність, що це має відношення до фрагментації пам'яті. Я рекомендую зменшити значення hw.ramSizeяк тимчасове вирішення.


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

Якщо це "фрагментація оперативної пам'яті", ми могли б, можливо, перевірити, що використовуючи одну з цих безглуздих програм "дефрагментація ОЗУ", правда?
Користувач

17

Схоже, є тисяча різних виправлень для цього ... жодне з перерахованих вище для мене не працювало, але те, що працювало, було запускати AVD з емулятора командного рядка-arm.exe @ AVD-NAME

Якимось чином, якщо запустити лише emulator.exe, я отримав би те саме повідомлення про помилку, як і при спробі запуску через Eclipse.


Ви можете мати те саме питання, що і я. Файли DLL завантажуються, коли ви запускаєте емулятор з одного місця, а не якщо ви починаєте з іншого.
mjaggard

14

Я зрозумів, що рішення цієї проблеми пов'язане з розподілом пам'яті Eclipse, коли ви запускаєте програму в звичайному режимі. Я лише встановив прапорець "Запустити як адміністратор" під властивостями ярликів для Eclipse, і тепер це дозволяє мені виділити більше пам'яті для AVD.

Сподіваюся, що це допомагає.


13

Я подолав цю проблему, змінивши розмір екрану пристрою.

Я виявив, що якщо ви вказуєте 1024 mb ram, тоді вам потрібно вказати розмір екрана пристрою лише у форматі hdpi, а якщо це 512 mb ram, то він повинен бути mdpi або іншими.

Отже, ми можемо чітко сказати, що розмір оперативної пам'яті слід визначати відповідно до розміру екрана. Якщо ви вказуєте розмір 1024 оперативної пам’яті, зберігаючи розмір екрана пристрою в mdpi, то це призводить до вищезгаданої помилки, тобто «Не вдалося виділити пам’ять: 8 Ця програма вимагає виконувати час виконання незвичним способом.

Для отримання додаткової інформації зверніться до служби підтримки програми. "

або

зробіть свої параметри в диспетчері AVD наступним чином:

[2013-01-11 14:44:01 - менеджер SDK] hw.sensors.orientation = так

[2013-01-11 14:44:01 - Менеджер SDK] hw.camera.front = немає

[2013-01-11 14:44:01 - Менеджер SDK] hw.gps = так

[2013-01-11 14:44:01 - Менеджер SDK] skin.dynamic = ні

[2013-01-11 14:44:01 - Менеджер SDK] hw.keyboard = ні

[2013-01-11 14:44:01 - Менеджер SDK] vm.heapSize = 32

[2013-01-11 14:44:01 - Менеджер SDK] hw.ramSize = 343


Це спрацювало: [2015-07-23 12:54:59 - Менеджер SDK] disk.dataPartition.size = 500M [2015-07-23 12:54:59 - Менеджер SDK] hw.gpu.enabled = так [2015- 23.07.2013 13:54:59 - Менеджер SDK] hw.audioInput = так [2015-07-23 12:54:59 - менеджер SDK] hw.sensors.orientation = так [2015-07-23 12:54:59 - Менеджер SDK] hw.camera.front = none [2015-07-23 12:54:59 - менеджер SDK] hw.gps = так [2015-07-23 12:54:59 - менеджер SDK] skin.dynamic = ні [2015-07-23 12:54:59 - менеджер SDK] hw.keyboard = так [2015-07-23 12:54:59 - менеджер SDK] vm.heapSize = 32 [2015-07-23 12:54 : 59 - Менеджер SDK] hw.ramSize = 512
user914425

6

Я переглянув усі інші рішення, згадані на цій темі, і не знайшов нічого, що працює, тому я трохи подумав. Версія Google API мені чомусь не вдалася. Я змінив його назад на ваніль і більше не виходить з ладу.

У мене повинен бути якийсь інший випуск, але, можливо, це комусь допоможе ...


Незвичайно. Я був налаштований на ванільну версію, але переключення на API Google вирішило це. +1 за ідею все одно!
Пол

6

Погляньте на офіційний випуск 33930 . Зазначається, що це може мати відношення до запуску OpenGL під час запуску емулятора. Інші написали, що вона виходить з ладу лише тоді, коли вони використовують WXGA800-skin та пропонують вручну встановити роздільну здатність 800x1280.

Далі є ZIP-файли, що надаються вручну для зниження SDK для android до версії 19 та платформних інструментів до версії 11. Це може допомогти тимчасово виправити проблему.


Це може бути пов'язане з моєю проблемою. Файли DLL завантажуються, коли ви запускаєте емулятор з одного місця, а не якщо ви починаєте з іншого.
mjaggard

Має бути більше. Спочатку встановивши його на WXGA800, потім змінивши його на роздільну здатність 1280x800 вручну, все ще виходить з ладу AVD. Тільки видалення hw.ramSize=1024вирішує проблему (ви не можете цього зробити, якщо вибрано WXGA, потрібно скористатися налаштуваннями роздільної здатності вручну).
RedGlyph

5

У мене в машині 16 ГБ і 3,4 ГГц чотирьохядерний процесор. Віртуальна машина також не дозволить мені запустити її в 1024. Я зробив це на 878 МБ, тому що він не вдався в 880 з тим же повідомленням. Це, мабуть, найбільше барана, який я можу виділити на емулятор. Це все ще повільно, але я припускаю, що це краще, ніж 512 Мб.


5

Я змінив налаштування DPI монітора з параметрів запуску AVD і синхронізував його з початковою та поточною настройками монітора, і він працював.


4

Я вирішив, поставивши як розмір пам’яті в 2 рази більше розміру оперативної пам’яті, і розмістивши розмір пам’яті SD таким же, як і розмір оперативної пам’яті.


3

У мене був той самий випуск, але перш ніж я вийшов, він попросив мене зняти джерело відео.

Я відключив підтримку камери, і мені вдалося користуватися 1024MB of RAM .

Використання Windows 64bit, Xoom (Android 3.0).


3

У моєму випадку для мене працює роздільна роздільна здатність екрана з WVGA720 на WSVGA.


3

Проблема полягає в фрагментації пам'яті. ОС повинна виділити всі оперативні пам’яті, які ви вказали для vm (скажімо, 1Gb), як один безперервний блок. Іноді такого блоку немає. Щоб виправити це закрити запущені програми, запустіть avd і запустіть свою віртуальну машину.


2

Що для мене працювало в Windows:

1) Закриття Eclipse 2) Запуск Avd UI 3) Закриття всіх запущених процесів, особливо важких у пам'яті, таких як Chrome, explorer.exe тощо. 4) Запустіть емулятор 5) Win


2

Будьте впевнені, що IntelHAXM встановлений правильно. Завантажити та «встановити» його недостатньо через диспетчер SDK. Його потрібно встановити вручну з:

android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

Також переконайтеся, що у вашому BIOS включена віртуальна технологія Intel.

Дотримуйтесь посібника на сайті developer.android.com або інструкцій з установки Intel .


2

Вам потрібно лише відредагувати таран віртуального пристрою, зробивши його нижче! Спробуйте 20 Мб, і воно спрацює!


1

Я помітив, що це стосувалося лише одного авд усіх решти тих, у кого я добре працював. Я її видалив і створив новий, і тепер він працює.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.