Eu tentei reinstalar um apk
$adb install -r new.apk
E mostra o erro:
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
Uma solução é desinstalar e instalar o new.apk, que funciona bem.
Mas estou me perguntando se eu poderia recriar um apk e reinstalar sem a desinstalação. Por exemplo. altere algumas configurações no AndroidManifest.xml ou não assine o APK etc.
Seria muito apreciado se você pudesse me dizer todo o significado de "INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES".
Respostas:
Isso significa que a nova cópia do seu aplicativo (na sua máquina de desenvolvimento) foi assinada com uma chave de assinatura diferente da cópia antiga do seu aplicativo (instalada no dispositivo / emulador). Por exemplo, se este for um dispositivo, você pode ter colocado a cópia antiga de uma máquina de desenvolvimento diferente (por exemplo, a máquina de outro desenvolvedor). Ou, o antigo é assinado com sua chave de produção e o novo é assinado com sua chave de depuração.
fonte
debug.keystore
) para sua nova máquina.debug.keystore
arquivo não está no diretório do projeto. Normalmente está no seu~/.android/
diretório. (consulte developer.android.com/guide/publishing/… )debug.keystore
). Escolha um para ser seu keystore principal, copie-o para todas as outras máquinas do desenvolvedor, substituindo o keystore existente.debug.keystore
). Depois de reconstruir o projeto (usando Build-> Rebuild no Android Studio), as chaves estavam sincronizadas.Eu me deparei com isso enquanto testava em um novo Xoom. Eu já havia instalado meu aplicativo no Marketplace. Mais tarde, ao tentar testar uma nova versão do aplicativo, encontrei esse erro.
Corrigi-o removendo o aplicativo que foi instalado via Marketplace (mantenha pressionado e arraste para o lixo). Posteriormente, consegui implantar minha versão de desenvolvimento sem nenhum problema.
fonte
Isso aconteceu comigo quando outro desenvolvedor da equipe criou nosso aplicativo no dispositivo de hardware no qual estava tentando implantar. A desinstalação do aplicativo do hardware corrigiu meu problema.
fonte
adb uninstall <package name>
. Obrigado.Este é o comando para desinstalar o aplicativo do dispositivo usando adb:
fonte
Eu recebi esse erro mesmo depois de desinstalar o APK original, que era intrigante. Por fim, percebi que havia configurado vários usuários no meu Nexus 7 para teste e que o aplicativo ainda estava instalado para um dos outros usuários. Depois que eu o desinstalei para todos os usuários, o erro desapareceu.
fonte
Alterei o nome do pacote ao codificar uma atualização para poder depurá-la no meu dispositivo via Eclipse, sem excluir a versão antiga que foi instalada. Sem reverter o nome do pacote que eu estava usando ao tentar reinstalar, recebi o mesmo erro. Usando o mesmo nome de pacote, a reinstalação foi bem-sucedida.
fonte
Basta excluir a versão antiga do dispositivo e reinstalar a mesma. Como o device.keystore já existe no dispositivo, desinstale a compilação e reinstale o APK.
obrigado
fonte
Eu enfrentei outro caso de uso em que recebi o erro semelhante. Quando recebi o erro, entrei em pânico e removi.
/data/data/{package.name}
Depois disso, tentei, e meu problema ainda estava presente. Então eu tentei desinstalar, falhou.Em seguida, removi o arquivo apk presente em
/system/app
(acesso root necessário) e tentei desinstalar e foi bem-sucedido.Depois disso, tentei reinstalar o apk, ele funcionou.
fonte
Pelo que vale, encontrei esse problema depois de adicionar um novo plug-in ao meu projeto Cordova. Eu estava tendo o Cordova para construir e instalar diretamente no dispositivo via USB.
Corrigi-o desinstalando o aplicativo do dispositivo e, na próxima implantação, não havia problemas.
fonte
Se você encontrar uma falha na implantação de um dispositivo ou emulador Andorid com o erro "Falha [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]" na janela Saída, basta excluir o aplicativo existente no dispositivo ou emulador e reimplementar. As compilações de depuração usarão um certificado de depuração, enquanto as compilações de versão usarão o certificado configurado. Este erro é simplesmente informar que o certificado do aplicativo instalado no dispositivo é diferente daquele que você está tentando instalar. Em cenários de não desenvolvimento (loja de aplicativos), isso pode ser um indicador de um aplicativo corrompido ou modificado que não é seguro para instalar no dispositivo.
fonte
Nada de cima funcionou para mim. O problema para mim era que eu tinha uma fonte errada no meu Java Build Path para android-support-v7-appcompat. Quando você vai para Projeto> Caminho da Construção> Configurar Caminho da Construção>. Na guia Origem, verifique se você possui android-support-v7-appcompat / gen, android-support-v7-appcompat / libs e android-support-v7-appcompat / src e nada mais. Clique em OK e deve funcionar.
fonte
Eu tive o mesmo erro hoje, mas o problema não era exatamente o mesmo. Estou usando o ADB com o Android instalado no VirtualBox . Tentei instalar versões diferentes do meu aplicativo (assinado / não assinado, modo de depuração / liberação) e obtive dois erros alternativamente:
INSTALL_FAILED_UID_CHANGED
eINSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
.Agora, ao olhar
/data/data/{package.name}
, encontrei um monte de arquivos que ainda estavam lá depois de desinstalar o aplicativo. Tenteirm -rf
sem êxito: obtive erros de E / S.A solução para isso foi:
vdfuse
(leitura / gravação)Partition1
arquivo de imagem come2fsck
fonte
Eu tive o mesmo problema até perceber que tinha o simulador em execução e o adb estava tentando instalar naquele
fonte
Como a verificação é baseada no nome do pacote, você pode alterar o nome do pacote no arquivo config.xml ou manifest para outro nome que desejar.
Ao publicar seu aplicativo , não se esqueça de alterar o nome!
fonte
Eu tive esse problema ao tentar executar tarefas gradle
connectedDebugAndoidTest
(ouconnectedAndroidTest
) no Genymotion . Executá-lo no emulador normal resolveu o problema.fonte
Acho que seu aplicativo foi instalado por outra conta. (Recurso do modo de várias contas) Você pode desinstalar o aplicativo em Configuração> Aplicativos> "nome do aplicativo"> Desinstalar
fonte