Falha ao alocar memória: 8

369

A partir de hoje, quando tentei executar um aplicativo no NetBeans em uma plataforma Android 2.3.3, isso me mostra que:

Falha ao alocar memória: 8

Este aplicativo solicitou que o Runtime o encerrasse de maneira incomum. Entre em contato com a equipe de suporte do aplicativo para obter mais informações.

e o emulador não deseja iniciar.

É a primeira vez que o vejo, e o Google não tem respostas para isso, tentei mesmo com duas versões do NetBeans 6.9.1 e 7.0.1, ainda o mesmo erro.

Δεηις Hoςς
fonte
3
Apenas curioso por que você está usando o NetBeans vs Eclipse. Eu uso o NetBeans para outras coisas (ou seja, php), mas acabei de achar mais fácil usar o eclipse para coisas do Android. Na sua opinião, quais são os benefícios do eclipse?
SBerg413 28/08/11
3
Eu nunca usei o Eclipse antes, mas não sei por que, eu odeio, o motivo, é até complicado na GUI x no NetBeans, mas, no momento, estou fazendo o download, para tentar, se o problema desaparecer, vou fazer Coisas Android apenas nele.
Denees
47
Uau, esse comentário foi um massacre de vírgula. De qualquer forma, verifique se o seu AVD está usando uma quantidade adequada de RAM (ou seja, o suficiente para executar, mas não mais do que o seu computador pode suportar). Isso é definido quando você cria o dispositivo virtual.
Glendon Trullinger 28/08
2
Apenas para referência, eu tenho um Core i7 com 16GB de RAM, maxxed fora ram no meu AVD de e todos eles são laggy infelizmente: /
Jack
11
Eu tenho uma máquina Windows 8 de 64 bits em execução em um processador Intel core i7. Eu tive que alterar as configurações de ram para este AVD (Nexus 7) para 512mb para que ele fosse executado.
IgorGanapolsky

Respostas:

373

Eu descobri. O problema estava na quantidade de RAM que eu havia especificado para a máquina virtual, e era 1024MB, agora tenho 512MB e está tudo bem, agora preciso descobrir como melhorar essa quantidade de RAM, 512 não é tanto, e a máquina está um pouco atrasada.

Denees
fonte
20
Eu tenho o mesmo problema com isso. Tenho 8 GB de RAM na minha máquina, com 6 GB livres enquanto o emulador do Android diz que não é possível alocar 1 GB?
Strozykowski 11/11
5
Eu tenho bem 8GB de RAM, mas SDK me diz que eu não posso usá-lo mais de 512 :)
Denees
5
Mais uma correção para adicionar. Às vezes, definir RAM para valores mais baixos não funciona. Ele Nesse caso, tente emulador lançamento da linha de comando com algo parecidoemulator-x86 -avd <your_avd_name>
Mykhailo Gaidai
14
Só tenho a solução: necessidade de especificar resolução AVD com força: 800 x 1280. Ela começa minha AVD quanto o que eu precisava
Nirav Shah
4
O problema vem de qualquer capa de exibição que agrega um valor de 1024 hw.ramSizeno config.ini ( Device Ram Sizena lista Hardware da GUI). Certifique-se de selecionar uma "capa" com um valor mais baixo ou usar uma resolução manual e remover esta linha da lista Hardware - você não pode removê-la quando a capa for selecionada.
RedGlyph #
61

Referindo-se ao Android: falha ao alocar memória e seu primeiro comentário na resposta aceita, alterar "1024" para "1024MB" me ajudou. Patético, mas funciona.

Fenix ​​Voltres
fonte
29
'MB' não é reconhecido pelo emulador, forçando-o a usar o valor padrão de 256 MB. Esteja ciente de que o valor especificado não é o que você receberá!
RedGlyph #
11
Olhando em Apps, Runnning, lista a quantidade total de memória para aproximadamente 240 MB, então parece que ele reverte para 256 MB.
jishi
Adicionar na janela Executar Configurações do parâmetro -Memória 512 a partir deste link fixo para mim
GatesReign
43

No meu caso:

  • Usando WXGA720 embutido para simular dispositivo 720p, sempre recebia esse erro
  • Defina manualmente a resolução AVD para 720 x 1280, funciona para mim

espero que ajude ~

RRTW
fonte
Semelhante aqui, o padrão para 7" WXGA800 falhou e configuração 800 x 1280 obras.
Xandy
30

Funciona com 512 Mb. Nenhum dos métodos acima funciona para mim.

slash33
fonte
O erro "Falha ao alocar memória: 8" desapareceu após reduzir o tamanho da RAM de 1024 para 768 Mib.
curd0
muitos deles estão dizendo a mesma coisa para fixar o tamanho de 512 MB.But não foi trabalhado em tudo
Steve
30

Tudo o mais que você lê aqui e em outros lugares é pura conjectura. A única maneira de corrigir esse problema é votar neste relatório de bug .

O problema não está relacionado à resolução do emulador ou ao OpenGL, nem à quantidade de memória que o seu computador possui. Tenho 24 GB de memória no meu computador e, na maioria das vezes, corro o hw.ramSize=1024erro 8. Outras vezes, ele funciona bem sem nenhuma alteração na configuração. Espero que você tenha entendido isso: não alterei a configuração do emulador e, no entanto, algumas vezes ele roda e outras vezes falha.

Há uma alta probabilidade de que tenha algo a ver com a fragmentação da memória. Eu recomendo reduzir o valor hw.ramSizecomo uma solução temporária.

Gili
fonte
2
Com todo respeito, sua resposta também é pura conjectura; Para mim, não tenho nenhum problema ao executar qualquer dispositivo emulado com RAM virtual definida como 2048 (não tentei mais). No entanto, esses dispositivos só serão executados quando eu acessar minha máquina pela Área de Trabalho Remota . Então, para mim, é certamente uma questão de gráficos e não de fragmentação de memória. Posso provar isso de maneira confiável pulando minha sessão de um lado para outro entre local e remoto. A mesma sessão, a mesma instância do gerenciador AVD, apenas nenhuma placa NVIDIA terrível e seus drivers em um cenário. (Mas isso é um discurso retórico para outro segmento).
s.co.tt
Se é "fragmentação de RAM", provavelmente poderíamos testar isso usando um desses programas "defragmentação de RAM" gratuitos e bobos, certo?
Utilizador
17

Parece que existem mil correções diferentes para isso ... nenhuma das opções acima funcionou para mim, mas o que funcionou foi iniciar o AVD a partir da linha de comando emulator-arm.exe @ AVD-NAME

De alguma forma, se iniciado com apenas emulator.exe, eu receberia a mesma mensagem de erro do que ao tentar iniciar via Eclipse.

Vincent Demers
fonte
Você pode ter o mesmo problema que eu. Os arquivos DLL são carregados quando você inicia o emulador de um lugar e não se você iniciar de outro.
Mjaggard #
14

Percebi que a solução para esse problema decorre da alocação de memória do Eclipse quando você executa o aplicativo no modo normal. Acabei de marcar a caixa "Executar como administrador" nas propriedades de atalho do Eclipse e agora ele permite que eu aloque mais memória para o AVD.

Espero que ajude.

Mahan H
fonte
13

Eu superei esse problema alterando o tamanho da tela do dispositivo.

Descobri que, se você estiver especificando 1024 mb de ram, precisará especificar o tamanho da tela do dispositivo apenas em hdpi e se for 512 mb de ram, deve ser mdpi ou outros.

Portanto, podemos dizer claramente que o tamanho da ram deve ser especificado de acordo com o tamanho da tela. Se você estiver especificando o tamanho da RAM de 1024 enquanto mantém o tamanho da tela do dispositivo em mdpi, isso resultará no erro mencionado acima, ou seja, "Falha ao alocar memória: 8 Este aplicativo solicitou que o Runtime a encerrasse de maneira incomum.

Entre em contato com a equipe de suporte do aplicativo para obter mais informações. "

ou

faça suas opções no AVD manager da seguinte maneira:

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

[2013-01-11 14:44:01 - Gerenciador de SDK] hw.camera.front = none

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

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

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

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

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

Vsw10
fonte
Funcionou: [2015-07-23 12:54:59 - Gerenciador de SDK] disk.dataPartition.size = 500M [2015-07-23 12:54:59 - Gerenciador de SDK] hw.gpu.enabled = yes [2015- 07-23 12:54:59 - Gerenciador de SDK] hw.audioInput = yes [2015-07-23 12:54:59 - Gerenciador de SDK] hw.sensors.orientation = yes [2015-07-23 12:54:59 - Gerenciador de SDK] hw.camera.front = none [2015-07-23 12:54:59 - Gerenciador de SDK] hw.gps = yes [2015-07-23 12:54:59 - Gerenciador de SDK] skin.dynamic = no [2015-07-23 12:54:59 - Gerenciador de SDK] hw.keyboard = yes [2015-07-23 12:54:59 - Gerenciador de SDK] vm.heapSize = 32 [2015-07-23 12:54 : 59 - Gerenciador de SDK] hw.ramSize = 512
user914425
6

Passei por todas as outras soluções mencionadas neste segmento e não encontrei nada que estivesse funcionando, por isso pensei um pouco. A versão do Google da API estava falhando comigo por algum motivo. Eu mudei de volta para a baunilha e não mais falhas.

Eu devo ter outro problema, mas talvez isso ajude alguém ...

Helico
fonte
Ímpar. Eu estava definido para a versão baunilha, mas mudar para a API do Google resolveu. De qualquer forma, +1 para a ideia!
Paulo
6

Dê uma olhada na edição oficial 33930 . É apontado que isso pode ter a ver com a inicialização do OpenGL durante o início do emulador. Outros escreveram que só trava quando usam o skin WXGA800 e sugerem definir manualmente a resolução para 800x1280.

Além disso, são fornecidos arquivos ZIP para fazer o downgrade manual do SDK do Android para a versão 19 e do plattform-tools para a versão 11. Isso também pode ajudar a corrigir temporariamente o problema.

Máx.
fonte
Isso pode estar relacionado ao meu problema. Os arquivos DLL são carregados quando você inicia o emulador de um lugar e não se você iniciar de outro.
Mjaggard #
Deve haver mais do que isso. Primeiro, defina-o como WXGA800 e, em seguida, altere-o para uma resolução manual de 1280x800 ainda trava o AVD. Somente a remoção do hw.ramSize=1024arquivo resolve o problema (não é possível fazer isso se WXGA estiver selecionado, é necessário usar configurações de resolução manual).
RedGlyph
5

Tenho 16 GB e um proc de quatro núcleos de 3,4 Ghz na minha máquina. A máquina virtual também não me permite executá-la em 1024. Fiz um aumento de 878 MB porque falhou em 880 com a mesma mensagem. Este parece ser o máximo de RAM que posso alocar para o emulador. Ainda está lento, mas suponho que seja melhor que 512 MB.

sondlerd
fonte
5

Altero as configurações de DPI do meu monitor nas opções de inicialização do AVD e o sincronizei com a configuração original e atual do meu monitor, e funcionou.

Droid GEEK
fonte
4

Resolvi colocando como tamanho de armazenamento 2 vezes o tamanho da RAM e colocando o tamanho do armazenamento SD igual ao tamanho da RAM.

Francesco Belladonna
fonte
3

Eu tinha o mesmo problema, mas antes que o problema me pedisse para capturar uma fonte de vídeo.

Desativei o suporte da câmera e consegui usá-lo 1024MB of RAM.

Usando o Windows 64bit, Xoom (Android 3.0).

Barry Carter
fonte
3

No meu caso, alterar a resolução da tela de WVGA720 para WSVGA funciona para mim.

Mabicho
fonte
3

O problema está na fragmentação da memória. O sistema operacional precisa alocar todo o ram especificado para vm (digamos 1 GB) como um bloco contínuo. Às vezes não existe esse bloqueio. Para corrigi-lo, execute os programas em execução, execute avd e inicie sua máquina virtual.

Dave
fonte
2

O que funcionou para mim no Windows foi:

1) Fechando o Eclipse 2) Executando a interface do usuário do Avd 3) Fechando todos os processos em execução, especialmente aqueles com muita memória, como Chrome, explorer.exe, etc. 4) Inicie o emulador 5) Ganhe

Oren Bengigi
fonte
2

Verifique se o IntelHAXM está instalado corretamente. Não basta baixar e "instalá-lo" através do SDK Manager. Você precisa instalá-lo manualmente a partir de:

android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

Além disso, verifique se a Intel Virtual Technology está ativada no seu BIOS.

Siga o guia em developer.android.com ou nas instruções de instalação da Intel .

pegel
fonte
2

Você só precisa editar a ram do seu dispositivo virtual, diminuindo! Tente 20 MB e funcionará!

user2062658
fonte
1

Percebi que estava relacionado a apenas um e todos os outros que eu trabalhei bem. Eu o apaguei e criei um novo e agora funciona.

Jason Crosby
fonte