Monthly Archives: Maio 2015

Novo Guia de Desenvolvimento para Android – II

No seguimento do artigo Novo Guia de Desenvolvimento para Android, e depois de me ter surgido novamente um problema já documentado nesse artigo, exponho aqui a solução para a dificuldade de correr um emulador na configuração descrita.

Esta semana decidi atualizar o sistema (kernel, bibliotecas, gcc, etc) da máquina onde tenho o ambiente de desenolvimento em Linux para Android com o Android Studio. Quando, mais tarde, tentei executar um emulador, recebi a mensagem:

Failed to start emulator: Cannot run program “/usr/local/android-sdk-linux/tools/emulator”

Mas esse programa existia e era executável. E já tinha funcionado imensas vezes anteriormente. Depois de uma pesquisa aturada na net@, confimei as minhas suspeitas: faltavam bibliotecas ao sistema.

Quando instalei, pela primeira vez, o ambiente de desenvolvimento para Android em Linux 64 bits, descobri que era preciso ter suporte para bibliotecas de 32 bits para correr o emulador.
Agora, depois da atualização da máquina, é necessário corrigir o problema de novo.

Para resolver esse problema no Slackware, há uma sequência de instruções do Eric Hameleers que adicionam capacidade multilib para o Slackware x86_64. Na altura, não coloquei aqui as instruções, mas agora vou colocar.

# SLACKVER=current
# cd /usr/local
# mkdir multilib
# cd multilib
# lftp -c "open http://taper.alienbase.nl/mirrors/people/alien/multilib/ ; mirror -c -e ${SLACKVER}"
# cd ${SLACKVER}
# upgradepkg --reinstall --install-new *.t?z
# upgradepkg --install-new slackware64-compat32/*-compat32/*.t?z
# upgradepkg --install-new debug/*.t?z

Para além disso, é necessário instalar suporte para virtualização em hardware. No caso do Slackware, o site seguinte explica o que fazer: KVM and libvirt

Na prática é necessário ir buscar os 3 pacotes seguintes, compilá-los e instalá-los:
yajl
urlgrabber
libvirt

Por fim, é necessário colocar o código seguinte no ficheiro /etc/rc.d/rc.local e executá-lo antes de lançar um emulador:

# start libvirt
if [ -x /etc/rc.d/rc.libvirt ]; then
    /etc/rc.d/rc.libvirt start
fi