Pesquisar este blog

segunda-feira, 2 de novembro de 2015

Emulador AVD Não Abre no Ubuntu

É fato que para um bom desenvolvimento de aplicativos Android é necessário ter o emulador AVD rodando.

Acontece que em alguns casos isso não acontece, pois simplesmente o emulador não abre. O principal motivo é a arquitetura, já que as atualizações do SDK Android Studio estão direcionadas para 64 bits e como ainda é possível encontrar máquinas com arquitetura de 32 bits, essa incompatibilidade simplesmente não permite a abertura do emulador.

Pode-se observar no interior da pasta tools no diretório SDK que existem vários emuladores disponíveis para execução, acontece que por padrão o Android Studio sempre utiliza o emulador denominado "emulator" e, como citado anteriormente, já a algum tempo as atualizações desse arquivo vem com uma arquitetura de 64 bits. 


O segredo está em trocar o arquivo "emulator" por outro arquivo compatível com a arquitetura de 32 bits. Um possível candidato é o arquivo "emulator-mips" executando os seguintes passos:

  1. Fazer uma cópia dos arquivos "emulator" e "emulator-mips".
  2. Remover o arquivo "emulator" para a lixeira.
  3. Renomear o arquivo "emulator-mips (cópia)" para emulator.
  4. Reiniciar o computador.
Pronto, a partir de agora toda vez que solicitado o Android Studio vai inicializar um emulador com arquitetura igual a da sua máquina. Ainda assim, caso o arquivo "emulator-mips" também não abra é possível fazer um teste com os arquivos restantes da pasta tools. Para isso é necessário ter uma AVD criada e seguir os seguintes passos:

  1. Abrir o terminal.
  2. Navegar até a pasta tools.
  3. Digitar o comando de abertura para cada arquivo, como por exemplo emulator-arm @(nome da AVD criada)
O terminal trará as informações do motivo da falha na abertura, caso ela exista. Repetir os passos citados acima até encontrar um emulador compatível com a sua arquitetura.

Para os usuários de processadores Intel

Caso a sua máquina tenha um processador da família Intel é possível não somente abrir o emulador AVD como acelerar o processo de abertura que geralmente é demorado seguindo os seguintes passos:

Instalar a KVM - Kernel-based Virtual Machine


A KVM é uma solução completa de virtualização para Linux que roda em processadores Intel x86, para sua instalação é necessário checar se a CPU suporta a virtualização de hardware com o comando:

egrep -c '(vmx|svm)' /proc/cpuinfo

Se a resposta desse comando for 0, seu CPU não tem suporte. Se a resposta for 1 ou mais, a sua máquina tem o suporte necessário, mas ainda existe a necessidade de saber se está habilitado na BIOS.


Instalar o pacote cpu-checker


sudo apt-get install cpu-checker

Fazer a verificação:

kvm-ok

O retorno deve ser próximo de:

INFO: Your CPU supports KVM extensions
INFO: /dev/kvm exists KVM acceleration can be used

Caso sua resposta seja algo como apresentado abaixo e você terá que entrar na BIOS para ativar a Intel Virtualization Technology:

INFO: KVM is disabled by your BIOS HINT:
Enter your BIOS setup and enable Virtualization Technology (VT), and then hard poweroff/poweron your system KVM acceleration can NOT be used

Instalar a KVM e alguns outros pacotes necessários:


sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Depois, você deve adicionar seu usuário aos grupos kvm e libvirtd:

sudo adduser seu_usuario kvm $ sudo adduser seu_usuario libvirtd

Reiniciar o computador.

Criando um AVD (Android Virtual Device) com o processador Intel


Primeiro, vamos instalar o pacote que dá suporte a escolha da CPU da Intel na criação do AVD. Abra o SDK Manager com o comando android e instale o pacote “Intel x86 Atom System Image” para a versão do Android que pretende usar. 


Em seguida, vamos criar um AVD normalmente, porém, com o processador da Intel. Abra o AVD Managet com o comando:

android avd

Usar uma definição de dispositivo da aba “Device Definitions”, no caso, o Nexus 4. Basta clicar na definição, depois em “Create ADV…”, escolher o target “4.2.2” e o CPU “Intel Atom (x86)”. Além disso, para facilitar na hora de usar com o emulador, trocar o nome do ADV para “nexus4” ou algum que seja familiar e fácil de gravar.




Ponto, agora você tem seu dispositivo virtual com o processador Intel.

Para carregar o emulador:

emulator-x86  @nexus4 

É importante notar que será necessário refazer os passos referentes a troca do arquivo "emulator" para o "emulator-86", mostradas no início da postagem, para que o Android Studio faça a sua abertura. Assim como todas as AVDs criadas devem ter a indicação para a arquitetura Intel x86.



2 comentários:

  1. estou com essa dificuldade, aqui infelizmente nao eu certo, como poderia lhe informar mais pra conseguir contornar essa dificuldade

    ResponderExcluir
    Respostas
    1. Essa solução foi desenvolvida para o Eclipse, atualmente descontinuado para programação Android, hoje o Android Studio é ferramenta ideal para desenvolvimento. A questão da incompatibilidade de 32 e 64 bits ainda incomoda algumas pessoas. Desinstale o Android Studio e reinstale prestando atenção nesse detalhe, outro ponto é se o seu Ubunto é 32 passe ele para 64. Espero ter ajudado e fico à sua disposição.

      Excluir