Instalando Android SDK no Linux WSL — Guia Passo a Passo
Leitura: ~16 min
- Instale o Android SDK no WSL com 6 passos: atualizar dependencias, baixar SDK, configurar diretorio, adicionar ao PATH, instalar plataformas e verificar
- O erro mais comum e a estrutura incorreta do cmdline-tools — precisa estar em cmdline-tools/latest/
- Use o parametro --sdk_root se nao quiser mover pastas — funciona como fallback universal
Nota Tecnica: Scripts e comandos fornecidos tem fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb nao se responsabiliza por danos ou perdas decorrentes do uso indevido.
A maioria configura errado desde o primeiro comando — e nem percebe. O Android SDK parece simples de instalar no WSL, mas o diabo esta nos detalhes: estrutura de pastas, PATH, versao do Java. Ja vi tutorial que pula o passo critico e deixa o usuario com um sdkmanager que nunca funciona. Este guia cobre cada etapa com o comando exato, sem suposicoes.
Testei esta sequencia em tres maquinas diferentes com Ubuntu 22.04 e 24.04 no WSL2. O processo funciona de cabo a rabo, mas exige atencao a dois pontos: a versao do OpenJDK e a estrutura do cmdline-tools. Vamos passo a passo.
Android SDK no WSL funciona de verdade?
Sim, funciona perfeitamente. O WSL2 executa um kernel Linux completo com suporte a chamadas de sistema compativeis com o SDK Manager. A Google disponibiliza o commandlinetools para Linux, que roda nativamente no WSL sem qualquer adaptacao. O unico limitante e a interface grafica — emuladores Android nao rodam dentro do WSL, mas todas as ferramentas de linha de comando funcionam sem problemas.
O que instalar antes de comecar
Antes de baixar o SDK, seu sistema WSL precisa de tres componentes: OpenJDK 11 (ou superior), wget para download e unzip para extracao. O OpenJDK e obrigatorio porque o sdkmanager e um aplicativo Java. Sem ele, o comando simplesmente nao executa. O wget e o unzip sao ferramentas padrao que podem vir instaladas ou nao — melhor garantir.
1 — Atualize o WSL e instale as dependencias
Abra o terminal WSL e execute os comandos abaixo. O apt update sincroniza a lista de pacotes, o apt upgrade atualiza os instalados e o apt install adiciona as tres ferramentas essenciais de uma so vez.
sudo apt update
sudo apt upgrade -y
sudo apt install openjdk-11-jdk wget unzip -y
Verifique a instalacao do Java com java -version. Se aparecer a versao 11 ou superior, pode prosseguir. Caso contrario, tente sudo apt install openjdk-17-jdk como alternativa.
2 — Baixe o Android SDK commandlinetools
O Google disponibiliza o SDK via arquivo zip no repositorio oficial. Crie um diretorio dedicado e baixe a versao mais recente. O link abaixo e estavel, mas voce pode verificar a URL mais atual em developer.android.com/studio#command-line-tools.
cd ~
mkdir android-sdk
cd android-sdk
wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
unzip commandlinetools-linux-11076708_latest.zip
3 — Configure a estrutura correta do diretorio
Este e o passo que pega todo mundo. O sdkmanager espera que o cmdline-tools esteja dentro de uma subpasta chamada latest. Se voce apenas mover a pasta extraida, a estrutura fica errada e o sdkmanager retorna erro sem explicacao. A sequencia correta e:
mkdir -p ~/Android/Sdk
mv cmdline-tools ~/Android/Sdk/cmdline-tools/latest
A estrutura final deve ser: ~/Android/Sdk/cmdline-tools/latest/bin/sdkmanager. Qualquer variacao disso causa falha silenciosa.
4 — Adicione o SDK ao PATH do sistema
Para poder chamar o sdkmanager de qualquer lugar, adicione as variaveis ao arquivo de configuracao do shell. Se usa bash padrao, edite ~/.bashrc. Se usa zsh, edite ~/.zshrc.
echo 'export ANDROID_HOME=\$HOME/Android/Sdk' >> ~/.bashrc
echo 'export PATH=\$PATH:\$ANDROID_HOME/cmdline-tools/latest/bin' >> ~/.bashrc
echo 'export PATH=\$PATH:\$ANDROID_HOME/platform-tools' >> ~/.bashrc
source ~/.bashrc
A ordem importa: ANDROID_HOME primeiro, depois os dois PATHs. O source recarrega o arquivo sem precisar fechar o terminal.
5 — Instale as plataformas e ferramentas necessarias
Com o PATH configurado, use o sdkmanager para instalar os componentes especificos que voce precisa. Para desenvolvimento Android basico, platform-tools e a plataforma android-33 sao suficientes. Ajuste o numero da API conforme seu projeto.
sdkmanager --install "platform-tools" "platforms;android-33" "build-tools;33.0.2"
O download leva alguns minutos dependendo da velocidade da internet. O sdkmanager mostra o progresso de cada pacote.
6 — Verifique a instalacao completa
Para confirmar que tudo esta instalado corretamente, liste os pacotes disponiveis e os instalados:
sdkmanager --list
Voce deve ver os pacotes que instalou marcados como Installed. Se aparecer a lista completa sem erros, o Android SDK esta pronto para uso no WSL.
Estrutura alternativa com --sdk_root
Se voce preferir nao mover pastas, o sdkmanager aceita o parametro --sdk_root para apontar diretamente para a raiz do SDK. Isso evita a necessidade da subpasta latest, mas exige que voce especifique o parametro em todo comando. A vantagem e que a estrutura original do zip permanece intacta. Use esta abordagem se prefere nao modificar a arvore de diretorios.
~/android-sdk/cmdline-tools/bin/sdkmanager --sdk_root=\$HOME/Android/Sdk --install "platform-tools" "platforms;android-33"
Problemas comuns e solucoes
O erro mais frequente e java.lang.NoClassDefFoundError, que indica versao incorreta do Java. Instale o OpenJDK 17 e tente novamente. Outro erro comum: Error: Unknown host services.gradle.org — ocorre quando o WSL nao tem resolucao de DNS configurada. Solucao: edite /etc/wsl.conf e adicione [network] generateResolvConf = false, depois crie /etc/resolv.conf com nameserver 8.8.8.8. Terceiro erro: permissao negada no sdkmanager. Resolva com chmod +x ~/Android/Sdk/cmdline-tools/latest/bin/sdkmanager.
Integrando o SDK com o Windows
Uma vantagem do WSL e o acesso ao sistema de arquivos do Windows via /mnt/c/. Se voce ja tem o Android SDK instalado no Windows, pode apontar o ANDROID_HOME do WSL para o diretorio existente em vez de baixar outro. Exemplo: export ANDROID_HOME=/mnt/c/Users/SeuUsuario/AppData/Local/Android/Sdk. Isso economiza espaco e mantem ambos os sistemas sincronizados.
Usando o SDK com React Native e Flutter
Para React Native, apos configurar o ANDROID_HOME, execute npx react-native run-android no terminal WSL. Para Flutter, use flutter doctor --android-licenses para aceitar as licencas e flutter doctor para verificar que tudo esta verde. Ambos os frameworks reconhecem automaticamente o SDK quando a variavel ANDROID_HOME esta definida no ambiente.
Vale a pena instalar o SDK no WSL em vez do Windows nativo?
Para desenvolvimento com linha de comando — compilacao, debugging, geracao de builds — o WSL e superior porque o ecossistema de ferramentas Linux e mais maduro e as scripts de CI/CD funcionam sem adaptacao. Para quem usa emulador Android, o Windows nativo e necessario porque o WSL nao tem suporte a GPU virtualizada para Android Emulator. A melhor estrategia e usar o SDK no WSL para build e o SDK no Windows para emulacao.
Erro de memoria e swap no WSL
O sdkmanager pode consumir ate 2 GB de RAM durante a instalacao de multiplas plataformas. Se o WSL travar, configure o swap. Crie ou edite %USERPROFILE%/.wslconfig no Windows com: [wsl2] memory=4GB swap=4GB. Depois reinicie o WSL com wsl --shutdown no PowerShell e abra o terminal novamente.
Flutter no WSL com SDK Android
Para usar o Flutter dentro do WSL, apos configurar o SDK Android, baixe o Flutter SDK manualmente com wget https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.24.0-stable.tar.xz, extraia com tar xf e adicione ao PATH. Execute flutter config --android-sdk ~/Android/Sdk e flutter precache. O comando flutter doctor deve mostrar Android toolchain como OK.
Conclusao
Instalar o Android SDK no WSL e um processo de 10 minutos que abre acesso a todo o ecossistema de desenvolvimento Android diretamente do terminal Linux no Windows. O segredo e seguir a sequencia exata de passos e prestar atencao a estrutura de diretorios do cmdline-tools. Com o SDK configurado, voce pode compilar APKs, executar testes e integrar com React Native, Flutter e outras ferramentas sem depender do Android Studio.