rocketseat-docs-rn

Android

Capa

Lista de erros comuns enfrentados no Android.

Erros relacionadas a tasks

Caso você esteja sofrendo com erros relacionados a tasks no React Native na hora que executa o comando para instalar o app Android, existe uma solução que pode resolver uma grande parcela desses erros. Faça o seguinte:

1 - Abra o Android Studio;

2 - Selecione a opção Open an existing Android Studio project;

3 - Procure pelo seu projeto React Native, escolha a pasta android e clique em OK;

openAndroidProject

4 - Aguarde o processo do Gradle que irá verificar e arrumar as pendências que faltam automaticamente. Na parte inferior da janela, existe uma barra de status que irá apresentar o progresso do processo. Essa etapa pode levar alguns minutos até acabar;

gradleFinish

5 - Após o fim do processo, feche o Android Studio e tente rodar o app novamente.

Unable to load script from assets 'index.android.bundle'. Make sure...

Esse erro geralmente acontece porque o sistema não conseguiu criar o bundle inicial que contém todo o código Javascript da aplicação.

Para resolver comece criando uma pasta assets dentro da pasta android/app/src/main.

Logo após, execute o comando:

npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/

Agora, feche as abas do terminal e execute novamente o comando:

npx react-native run-android
# Ou yarn run react-native run-android
# Ou yarn android

react-native run-android: FAILURE: Build failed with an exception.

Esse erro pode acontecer por muitos motivos, mas na maioria das vezes é algum cache que precisa ser deletado.

Para resolver execute na pasta do seu projeto:

cd android && ./gradlew clean && cd .. && npx react-native run-android

Erros ao tentar ativar o JDK ou inicializar o projeto React Native

Seu sistema pode ter diversar versões do Java instaladas, para selecionar qual versão quer ativar use o comando:

sudo update-alternatives --config java

E selecione a versão 8.

Caso você tenha iniciado o projeto com uma versão do Java acima da 8 e encontre alguns erros de build, tente reinicializar (criar um novo projeto) após ativar a versão 8 do Java.

Failed to install the following Android SDK packages as some licences have not been accepted.

Esse erro geralmente acontece por alguma licença não ter sido aceitada na SDK do Android.

Primeiramente é necessário você conhecer o caminho da SDK do Android instalada em sua máquina. O caminho geralmenta aparece abaixo desse erro ou pode ser recuperado pela variável ambiente ANDROID_HOME ou até dentro da aba ADB na configuração do Genymotion.

Com o caminho em mãos (vamos supor que seja /Users/myuser/Android/Sdk) vamos executar o comando:

/Users/myuser/Android/Sdk/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} --licenses

Após executar esse comando, digite y para todas as perguntas abaixo.

react-native run-android: BUILD FAILURE: No connected devices!

Esse erro geralmente acontece quando o aparelho está mal conectado a entrada USB ou não está com o modo depuração USB ativado. Digite no terminal:

adb devices

Caso apareça a listagem sem o nome do seu aparelho com o status device, provavelmente este é o seu problema.

List of devices attached

Para resolver, verifique se a depuração USB do celular está ativada (alguns aparelhos, como os da Xiaomi, desativam essa opção a partir de outros programas). Caso esteja ativado, tente reconectar seu aparelho a entrada USB ou troque de cabo.

Para confirmar se está tudo certo, digite novamente o comando:

adb devices

A resposta deve listar seu aparelho:

List of devices attached
NOME_DO_SEU_EMULADOR device

Por fim, basta executar o comando para executar o app novamente:

npx react-native run-android
# Ou yarn run react-native run-android
# Ou yarn android

Grant current user access to dev/kvm ao executar emulador

A instalação do KVM não foi realizada com sucesso, repita os passos dessa seção

Erro na instalação do Intel HAXM ou na inicialização do Emulador

Caso você não esteja conseguindo instalar o Intel HAXM ou esteja recebendo um erro ao iniciar o emulador, é preciso verificar algumas coisas.

Primeiro, no Windows, é preciso lembrar que você só deverá usar o Intel HAXM se possuir um processador Intel e não precisar usar o Hyper-V. Caso contrário (possua AMD ou precise usar Hyper-V), você deve utilizar o Windows Hypervisor Platform (para instalá-lo, clique aqui).

Verificado isso, você deve verificar na sequência se sua máquina atende os requisitos:

  • Processador Intel com suporte a Intel VT-x, Intel EM64T (Intel 64) e o Execute Disable (XD);
  • Mínimo 4 GB de RAM, recomendado 8 GB;
  • Microsoft Windows 7 64-bit ou superior.

Atendidos esses pontos, é preciso conferir se as configurações do seu computador estão atrapalhando a correta instalação. Verifique:

1 - Virtualização habilitada: abra o Gerenciador de Tarefas (Ctrl + Shift + ESC), clique na aba Desempenho e verifique se no canto inferior direito aparece a opção Virtualização: Habilitada. Se aparecer desabilitada, é preciso acessar a BIOS do seu computador e ativá-la manualmente;

windowsVirt

2 - Antivírus: alguns programas desse gênero tem bloqueado a virtualização, mesmo após ativar na BIOS. O exemplo mais comum é o do Avast, que é o que vamos mostrar aqui, mas se o seu for outro antivírus verifique nas configurações se ele não está interferindo na virtualização. No Avast, basta abrir o programa e ir em Configurações -> Solução de Problemas, desmarcar a opção Ativar virtualização assistida por hardware e reiniciar o computador.

avastVirt

Por fim, basta tentar instalar novamente o Intel HAXM. Existem duas formas:

1 - Android Studio (recomendada): abra o programa e vá em Configure -> SDK Manager. Nessa janela, na seção Android SDK acesse a aba SDK Tools e verifique se a opção Intel x86 Emulator Accelerator (HAXM Installer) está com o status Installed. Se tiver, desinstale e instale novamente. Se não tiver, instale. Ao final do processo, reinicie a máquina e verifique se o problema foi corrigido. Se não foi, tente instalar pelo segundo método;

2 - Instalador HAXM: baixe o instalador para Windows aqui, extraia o executável e inicie o processo de instalação. Ao final do processo, reinicie a máquina e verifique se o problema foi corrigido.

Se o seu problema persistir, verifique novamente se sua máquina atende os requisitos e se você está utilizando um processador Intel sem habilitar o Hyper-V.

App com tela branca

Caso você tenha conseguido instalar o app no seu celular mas só consegue visualizar uma tela branca é provável que seja um dos dois casos:

1 - O componente que você está renderizando é realmente apenas uma tela branca (ex.: apenas uma <View/> sem estilização);

2 - Você instalou/iniciou o app sem estar com o Metro Bundler aberto e, mesmo depois de abri-lo, o app carregou mas ficou com uma tela branca. Nesses casos, a solução é simples. Force o encerramento do app no dispositivo e abra novamente.

Exemplo Reiniciar App Emulador

Error: spawnSync ./gradlew EACCES

Esse erro acontece por problema de permissão com a pasta android do seu projeto. Abra o terminal na pasta do seu projeto React Native e execute o seguinte comando:

chmod 755 android/gradlew

Agora tente rodar o app novamente.

Task :app:mergeExtDexDebug FAILED ou Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'

No caso desses erros, é preciso ativar o multiDex no android. Acesse android/app/build.gradle e acrescente a seguinte linha no android -> defaultConfig

android {
...
defaultConfig {
...
multiDexEnabled true // adicione essa linha
...
}
...
}
Edit this page on GitHub