Emulador do android e variáveis de ambiente no linux

Como configurar o emulador do android e as variáveis de ambiente necessárias?


Feriado rolando e o que fazer com esse belo dia? Um curso de react native, claro!
Na verdade comprei o curso para incentivar minha esposa a estudar desenvolvimento mobile e tudo estava muito bem até o primeiro erro acontecer :'(

Bom, não é de hoje que problemas de configuração de ambiente são comuns (e o linux é um pouco mais chato quando tratamos de configurações e para quem está iniciando -depois de um tempo vc aprende a amar S2-). Só pra esclarecer, erros de ambiente são normais, em qualquer plataforma e com tempo e experiência você acaba resolvendo essas coisas naturalmente, sem ser massacrado (mas no início, sim, vc vai tomar uma bela surra de configurações, erros de ambiente, vai descobrir que existe o stackoverflow e sua vida vai mudar). Enfim, chega de bla bla bla e vamos para o problema... ahmm?? oO

Para, para, para, para...

Antes, apenas para contextualizar. O curso que comprei e incentivei minha esposa estudar é o curso de React Native do Professor Leonardo Moura Leitão - https://www.udemy.com/curso-react-native/ - (que pra mim, é o melhor instrutor do Udemy -não conheço o cara e nem tem relação com o cargo dele, só gosto das aulas dele mesmo hehe).

Enfim, o problema (ou, os problemas)

Já na seção 2 do curso, o erro a seguir ocorreu no terminal: ERROR: x86 emulation currently requires hardware acceleration! Esse erro ocorreu por falta de permissão para o usuário atual no grupo /dev/kvm. Mas antes de chegar nesse problema, por algum motivo eu fui verificar as variáveis de ambiente e após fechar o terminal e abrir novamente, constatei que elas não estavam mais no PATH.

Certo, então como configurar as variáveis de ambiente no linux para ficarem definitivamente no path?

Bom, pelo terminal, com seu usuário, usando o export NOME_VARIAVEL="valor", funciona para a sessão atual, mas e se eu quero que esses valores fiquem permanentemente no meu PATH (e eu quero). Então preciso dos passos vem a seguir:

- sudo vim ~/.profile
no fim do arquivo (e já estou contando que nesse momento o android studio já está instalado), adicionamos as linhas:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
(dica: i para modo de inserção, depois de editar pressione esc e digite :wq para sair e salvar)
- source ~/.profile

Feito isso, basta fechar o terminal e agora estará disponível sempre que você abrir o terminal.

Certo, variáveis configuradas, mas ainda temos o problema de permissão no grupo /dev/kvm

Para resolver isso, vamos seguir os passos abaixo no terminal:
- sudo apt install qemu-kvm
- sudo adduser <seu usuário do sistema> kvm
- reinicie o computador (sim!)

Alguns fóruns recomendam que você use o próximo comando:
- sudo chown <seu usuário do sistema> /dev/kvm

*Não faça isso. Isso vai resolver sem reiniciar pois estará trocando a propriedade do grupo para o seu usuário. Mas tem cara de gambiarra. Apenas reinicie o computador e seu usuário estará no grupo.

Agora o emulador do android já deve executar perfeitamente. Teste via terminal:
- emulator -list-avds
(copie o nome se aparecer um nome - se não aparecer você terá de configurar uma avd e isso é mais simples pelo android studio)
- emulator -no-snapshot -avd <nome copiado>

E... tá lá :D



Flwss, espero ter ajudado. :P


Referências:
https://stackoverflow.com/questions/37300811/android-studio-dev-kvm-device-permission-denied
https://sempreupdate.com.br/como-configurar-uma-variavel-no-path-do-gnulinux/