Configurar o ambiente do React Native não é difícil, mas envolve várias peças: Node.js, Java, Android Studio, SDK, variáveis de ambiente e um emulador. Se uma delas ficar faltando, o primeiro build costuma responder com uma mensagem pouco amigável.
Este texto é minha versão prática do guia oficial de configuração do React Native, pensando em uma máquina com Ubuntu e no desenvolvimento para Android.
Não vamos configurar iOS porque o build nativo depende do macOS e do Xcode. No Ubuntu, nosso alvo será Android, usando um emulador ou um aparelho físico.
O que vamos instalar
No fim, o ambiente terá:
- Git e ferramentas básicas de compilação;
- Node.js 22 ou mais recente;
- JDK 17;
- Android Studio;
- Android SDK, Build Tools e Platform Tools;
- KVM para o emulador não se arrastar;
- um projeto React Native rodando de verdade.
Eu prefiro fazer a configuração em blocos e testar cada ferramenta antes de seguir. É bem mais fácil descobrir onde algo deu errado.
1. Preparando o Ubuntu
Começamos atualizando a lista de pacotes e instalando algumas ferramentas que serão úteis durante a configuração:
sudo apt update
sudo apt install -y curl git unzip zip build-essentialConfirme o Git:
git --version2. Instalando o Node.js com NVM
O React Native atualmente exige Node.js 22.11.0 ou superior. Como projetos diferentes podem pedir versões diferentes, uso NVM em vez de instalar Node diretamente pelo apt.
Se o NVM ainda não estiver instalado, deixei um passo a passo separado em Gerenciando múltiplas versões de Node.js com NVM.
Com o NVM disponível, instale a linha 22 e deixe-a como padrão:
nvm install 22
nvm alias default 22
nvm use 22Confira as versões:
node -v
npm -vSe o node -v mostrar uma versão igual ou superior à v22.11.0, podemos continuar.
3. Instalando o JDK 17
O Android usa Gradle para compilar o projeto nativo, e o Gradle precisa do Java. A recomendação atual do React Native é o JDK 17. Versões mais novas podem funcionar, mas também podem criar incompatibilidades desnecessárias.
No Ubuntu:
sudo apt install -y openjdk-17-jdkConfirme:
java -version
javac -versionAs duas respostas devem indicar a versão 17.
Agora adicione o JAVA_HOME ao final do ~/.bashrc:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH="$PATH:$JAVA_HOME/bin"Recarregue o terminal e confira o caminho:
source ~/.bashrc
echo $JAVA_HOMEEsse é o caminho padrão no Ubuntu para máquinas x86_64. Se ele não existir, use o comando abaixo para localizar a instalação ativa:
readlink -f $(which java)O JAVA_HOME deve apontar para a pasta do JDK, sem o trecho /bin/java no final.
4. Instalando o Android Studio
Baixe a versão estável para Linux na página oficial do Android Studio. O arquivo vem como .tar.gz.
Depois do download, entre na pasta onde ele foi salvo e extraia o conteúdo:
cd ~/Downloads
tar -xzf android-studio-*-linux.tar.gzMova a pasta para /opt:
sudo mv android-studio /opt/android-studioAbra o Android Studio:
/opt/android-studio/bin/studio.shNo primeiro início, siga o assistente com a instalação padrão. Garanta que estes componentes estejam selecionados:
- Android SDK;
- Android SDK Platform;
- Android Virtual Device.
Depois, dentro do Android Studio, use Tools → Create Desktop Entry se quiser criar um atalho no menu de aplicativos.
5. Instalando o SDK necessário
Na tela inicial do Android Studio, abra More Actions → SDK Manager. Se algum projeto já estiver aberto, o mesmo menu fica em Settings → Languages & Frameworks → Android SDK.
Na aba SDK Platforms:
- marque Show Package Details;
- expanda Android 15 (VanillaIceCream);
- selecione Android SDK Platform 35;
- selecione uma imagem de sistema Google APIs x86_64.
Na aba SDK Tools, marque Show Package Details e instale:
- Android SDK Build-Tools 36.0.0;
- Android SDK Command-line Tools (latest);
- Android SDK Platform-Tools;
- Android Emulator.
Clique em Apply e espere os downloads terminarem. Essa parte costuma ser a mais demorada.
As versões exigidas mudam com o React Native. Se estiver configurando outra versão do framework, vale conferir o compileSdk do projeto e a documentação atual antes de instalar tudo.
6. Configurando o ANDROID_HOME
No Ubuntu, o Android Studio normalmente salva o SDK em $HOME/Android/Sdk.
Adicione estas linhas ao final do ~/.bashrc:
export ANDROID_HOME="$HOME/Android/Sdk"
export PATH="$PATH:$ANDROID_HOME/emulator"
export PATH="$PATH:$ANDROID_HOME/platform-tools"Recarregue a configuração:
source ~/.bashrcAgora verifique cada parte:
echo $ANDROID_HOME
adb version
emulator -versionSe o caminho do SDK for diferente, o local correto aparece no próprio SDK Manager, no campo Android SDK Location. É melhor copiar esse caminho do que tentar adivinhar.
7. Ativando a aceleração do emulador
Sem aceleração por hardware, o emulador Android pode ficar muito lento. No Linux, ele usa KVM.
Primeiro, veja se o processador possui virtualização:
sudo apt install -y cpu-checker
kvm-okO resultado esperado é algo parecido com:
INFO: /dev/kvm exists
KVM acceleration can be usedSe a virtualização estiver desativada, será necessário habilitar Intel VT-x ou AMD-V na BIOS/UEFI.
Instale o KVM e os pacotes de suporte:
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
sudo adduser "$USER" kvm
sudo adduser "$USER" libvirtDepois, encerre a sessão do Ubuntu e entre novamente para atualizar os grupos do usuário. Reiniciar a máquina também resolve.
O guia de aceleração do Android Emulator tem mais detalhes para casos em que o kvm-ok continua falhando.
8. Criando um dispositivo virtual
No Android Studio, abra More Actions → Virtual Device Manager e escolha Create Virtual Device.
Para uma configuração simples:
- escolha um aparelho da categoria Phone, como um Pixel;
- selecione a imagem do Android 15, API 35, com Google APIs;
- mantenha as opções padrão;
- finalize e inicie o aparelho pelo botão de execução.
Espere o Android terminar de iniciar e confirme que o ADB consegue encontrá-lo:
adb devicesA saída deve mostrar um dispositivo com estado device:
List of devices attached
emulator-5554 device9. Criando o primeiro projeto
Evite instalar react-native-cli globalmente. A CLI global antiga pode entrar em conflito com a versão usada pelo projeto.
Se ela já estiver instalada, remova:
npm uninstall -g react-native-cli @react-native-community/cliCrie um projeto novo usando a Community CLI:
npx @react-native-community/cli@latest init MeuPrimeiroApp
cd MeuPrimeiroAppCom o emulador aberto, inicie o Metro:
npm startDeixe esse terminal rodando. Em outro terminal, entre na pasta do projeto e execute:
npm run androidO primeiro build demora porque o Gradle precisa baixar dependências. Os próximos tendem a ser bem mais rápidos.
Se tudo estiver certo, o app padrão aparecerá no emulador. Nesse ponto, o ambiente está pronto.
Erros que costumo conferir primeiro
SDK location not found
Confira se ANDROID_HOME aponta para a pasta exibida no SDK Manager:
echo $ANDROID_HOME
ls $ANDROID_HOMEadb: command not found
Recarregue o shell e confirme se platform-tools entrou no PATH:
source ~/.bashrc
which adbNenhum dispositivo encontrado
Abra o emulador antes do build e rode:
adb kill-server
adb start-server
adb devicesErro relacionado ao Java ou Gradle
Confirme que o terminal e o Gradle estão usando o JDK 17:
java -version
echo $JAVA_HOME
cd android && ./gradlew --versionENOSPC durante o Metro
No Linux, essa mensagem muitas vezes significa que o limite de arquivos observados foi atingido, não que o disco ficou sem espaço. Aumente o limite temporariamente:
sudo sysctl fs.inotify.max_user_watches=524288Se o erro desaparecer, aí vale tornar a configuração permanente no sistema.
Checklist final
Antes de considerar o ambiente pronto, estes comandos precisam funcionar:
node -v
npm -v
java -version
echo $JAVA_HOME
echo $ANDROID_HOME
adb version
emulator -version
adb devicesNo fim, o React Native em si é a parte rápida. O trabalho maior é deixar Node, Java e Android SDK conversando corretamente. Depois que isso está organizado, criar ou clonar um projeto novo deixa de ser uma aventura.
Fechamento
Ter esse passo a passo salvo evita repetir a mesma pesquisa sempre que preciso configurar uma máquina ou entender por que um build Android não inicia. O ponto principal é validar cada camada separadamente: primeiro Node, depois Java, SDK, ADB e emulador.
Quando todos os comandos do checklist respondem corretamente, qualquer erro seguinte tende a estar no projeto, não no ambiente. Essa separação já economiza um bom tempo de investigação.