Solução de problemasPublicado em: 3 min de leitura

Erros do adb install: códigos INSTALL_FAILED explicados

O que significa cada erro do adb install e como resolver, de INSTALL_FAILED_VERSION_DOWNGRADE e UPDATE_INCOMPATIBLE a NO_MATCHING_ABIS, USER_RESTRICTED e split APKs.

O adb install app.apk mostra Success ou um Failure [CÓDIGO: mensagem]. O código diz exatamente o que deu errado. Abaixo estão os códigos mais comuns, o que significam e como resolver cada um.

Tabela rápida

CódigoSignificadoSolução
INSTALL_FAILED_ALREADY_EXISTSO app já está instaladoadb install -r app.apk
INSTALL_FAILED_VERSION_DOWNGRADEVersion code menor que o do app instaladoadb install -r -d app.apk, ou desinstale antes
INSTALL_FAILED_UPDATE_INCOMPATIBLEMesmo pacote, chave de assinatura diferenteDesinstale o app instalado antes
INSTALL_PARSE_FAILED_NO_CERTIFICATESO APK não está assinadoAssine o APK, ou gere um APK de debug/release assinado
INSTALL_FAILED_NO_MATCHING_ABISCódigo nativo para o tipo de CPU erradoUse um APK feito para a ABI do celular
INSTALL_FAILED_OLDER_SDKO Android do celular é antigo demaisUse uma build com minSdkVersion menor
INSTALL_FAILED_TEST_ONLYAPK marcado como testOnlyadb install -t app.apk
INSTALL_FAILED_INSUFFICIENT_STORAGEFalta espaço livreLibere armazenamento
INSTALL_FAILED_USER_RESTRICTEDO celular bloqueou a instalaçãoPermita instalar via USB e confirme no celular
INSTALL_FAILED_MISSING_SPLITFalta uma parte de um split APKInstale todas as partes juntas

Os mais comuns em detalhe

UPDATE_INCOMPATIBLE: as assinaturas não batem

Já existe um app com o mesmo nome de pacote instalado, mas assinado com outra chave, por exemplo a versão da Play Store do app que você está testando. O Android não substitui esse app, para proteger os dados dele:

adb uninstall com.example.app
adb install app.apk

Desinstalar apaga os dados desse app no celular.

VERSION_DOWNGRADE

Você está instalando uma build mais antiga por cima de uma mais nova. Permita com -d:

adb install -r -d app.apk

Nas versões recentes do Android isso só funciona com builds depuráveis. Caso contrário, desinstale antes.

NO_MATCHING_ABIS

O APK traz bibliotecas nativas para um processador que o celular não usa, por exemplo uma build só x86_64 num celular ARM, ou uma build só arm64-v8a num celular ou TV com Android 32 bits. Confira o que o celular suporta:

adb shell getprop ro.product.cpu.abilist

Depois gere ou baixe a variante correspondente, ou um APK universal.

USER_RESTRICTED

O celular recusou a instalação. Nos Xiaomi, Redmi e POCO, ative Instalar via USB em Opções do desenvolvedor e toque em Instalar na confirmação que aparece no celular. Detalhes em Depuração USB e configurações de segurança na Xiaomi. Perfis de trabalho e controle parental também podem bloquear instalações.

Split APKs e app bundles

Apps gerados a partir de Android App Bundles vêm em vários arquivos APK (uma base e os splits). Instale todos de uma vez:

adb install-multiple base.apk split_config.arm64_v8a.apk split_config.en.apk

Um arquivo .aab não pode ser instalado direto. Gere os APKs a partir dele com o bundletool antes.

O Play Protect bloqueia a instalação

Às vezes a instalação para porque o Google Play Protect alerta sobre um app desconhecido. Olhe a tela do celular e escolha instalar mesmo assim só se você confia no APK.

Instalando APKs pelo navegador

O painel Install APK do ADBKit faz a mesma instalação no celular e mostra o resultado exato, incluindo o código de falha explicado em palavras simples. Marque Replace existing app para atualizar um app já instalado, o que equivale ao -r. Funciona por USB ou pelo Wi-Fi com o agente do ADBKit, e o APK vai direto do seu computador para o celular.

Mais sobre instalação em como instalar um APK com ADB.