O emulador Android SDK congela em um Mac com o OS X 10.6 Snow Leopard

5

Estou com problemas para executar o Android SDK em ambos os Macs que executam o OS X 10.6.2 Snow Leopard. Isso parece ser um problema de 64 bits contra 32 bits, já que o Snow Leopard agora é padronizado para tudo de 64 bits, incluindo a máquina virtual Java.

Eu encontrei esta página da Web com instruções sobre como obter as ferramentas do Android para executar na VM Java de 32 bits e agora posso executar a ferramenta de GUI do Android para fazer download de arquivos SDK, criar AVM's etc. No entanto, quando eu tento o Olá Mundo e chegar ao ponto em que eu executo meu aplicativo no emulador Android, tudo vai para o sul.

O emulador parece começar, mas ele trava (girando a bola de praia do cursor da morte) sem exibir nada. (Isso só trava o emulador; o restante do sistema ainda funciona bem.) Se eu seguir exatamente as mesmas etapas (menos o hack de 32 bits do Java) em uma máquina virtual do Windows, tudo funcionará bem.

Isso ocorre tanto na minha torre Mac Pro quanto no MacBook Pro de 13 polegadas. Alguém tem alguma sugestão?

    
por Donald Burr 23.11.2009 / 01:16

6 respostas

4

Eu estava vasculhando o outro dia e vi essa mensagem aparecer no terminal: emulator: aviso: a abertura da entrada de áudio falhou Eu vi essa mensagem muitas vezes antes e sempre presumi que era porque o emulador não tinha suporte som ou algo parecido. Mas eu decidi tentar um experimento naquele dia em particular. Acontece que o emulador tem uma opção de linha de comando "-noaudio", e quando eu corri com isso, funcionou !! Então agora eu apenas corro emulador com a opção -noaudio sempre, não congela. Não há suporte a som, mas pelo menos eu posso rodar o emulador agora.

Agora, isso funciona se eu chamar manualmente o emulador a partir da linha de comando. E quando o plugin do Eclipse ADT chama? Bem, eu estava me sentindo um pouco preguiçoso nesse ponto e não queria cavar no plugin do ADT para ver se ele tinha uma opção "adicionar esses flags de linha de comando sempre que rodar o emulador", então eu fiz um pequeno shell script "wrapper" para o comando emulador que sempre adiciona a opção -noaudio. É um pouco desajeitado, mas funciona. Veja como: (note: $ representa o prompt do shell, não digite você mesmo)

$ cd <WHERE YOU INSTALLED THE ANDROID SDK>/tools
$ mv emulator emulator.real
$ cat > emulator << EOF
#!/bin/sh
exec <WHERE YOU INSTALLED THE ANDROID SDK>/tools/emulator.real -noaudio $*
EOF
    
por 31.12.2009 / 20:57
2

Todas as dicas acima com certeza funcionam. A solução para o problema de congelamento é apenas passar o sinalizador da opção -noaudio ao iniciar o emulador.

Para acelerar ainda mais a inicialização do emulador, você pode adicionar outros dois sinalizadores / opções -cpu-delay e -no-boot-anim da seguinte maneira:

$ emulator -cpu-delay 0 -no-boot-anim -no-audio -avd <avd name>

em que -no-audio corrige o problema de congelamento. -no-boot-anim desativa a animação de inicialização e <avd name> deve ser substituído pelo nome da imagem avd que você deseja executar

    
por 26.04.2012 / 11:43
1

Eu tive o mesmo problema, e foi corrigido simplesmente desconectando meu fone de ouvido USB que estava conectado no momento em que eu estava executando o emulador

    
por 12.03.2010 / 21:10
1

A resposta que Donald Burr deu em 31 de dezembro de 2009 às 19:57 ainda se aplica mesmo com o SDK e a cadeia de ferramentas atuais.

Mas você não precisa do script wrapper se usar o Eclipse. Você pode simplesmente passar a opção de linha de comando -noaudio dentro da configuração de execução específica de seu aplicativo (na guia "Destino" no campo "opções adicionais de linha de comando do emulador").

Esqueci de adicionar: eu uso um MacBook e tenho um monitor LED Cinema de 24 polegadas conectado, que também é conectado por USB e fornece alto-falantes de som. Então, eu acho que o bug do dispositivo de som USB mencionado ainda está em algum lugar dentro do pacote inteiro do Android SDK.

    
por 21.05.2010 / 15:54
1

Eu tive o mesmo problema no OS X 10.8.4 em um MacBook Air. Eu finalmente descobri que o problema só foi acionado no relançamento do AVD. Minha solução agora é definir um novo AVD toda vez que eu reiniciar o emulador.

    
por 07.07.2013 / 01:16
0

eu estou rodando o 10.6.2, android 2.0.1, eclipse 3.5 sem problemas, então deve ser algo do seu lado. voltaria às configurações padrão do os x e reinstalaria o sdk. tente executar o emulador apenas na linha de comando e veja se isso funciona ...

mac:~ > java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)

mac:~ > uname -a
Darwin veritas 10.2.0 Darwin Kernel Version 10.2.0: Tue Nov  3 10:37:10 PST 2009; root:xnu-1486.2.11~1/RELEASE_I386 i386
    
por 29.12.2009 / 18:06