As assinaturas do pacote não correspondem à versão instalada anteriormente

95

Este é meu projeto: https://github.com/kenpeter/my_hak_news , que é uma cópia direta de https://github.com/grigio/HAgnostic-News .

Git clone https://github.com/kenpeter/my_hak_news e executereact-native run-android

Recebi este erro:

* What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Failed to finalize session : INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.hagnosticnews signatures do not match the previously installed version; ignoring!

Problema relevante: https://github.com/grigio/HAgnostic-News/issues/1 , sigo vários caminhos, mas não consigo resolver esse problema.

kenpeter
fonte
15
Você já tem o aplicativo instalado no seu telefone?
Nesse
Uma vez instalei no meu telefone, desinstalei-o pressionando longamente e depois fui para a desinstalação. Ainda não funciona.
kenpeter
4
Verifique se o aplicativo foi desinstalado para todos os usuários. Vá para Configurações -> Aplicativos -> HAgnostic News -> Opções (os três pontos no canto superior direito) -> Desinstalar para todos os usuários
maxoumime
Essa é a solução!
kenpeter de

Respostas:

137

Você precisa desinstalá-lo porque está usando uma assinatura diferente da original. Se não estiver funcionando, pode ser porque ainda está instalado para outro usuário no dispositivo. Para desinstalar completamente, vá para Configurações -> Aplicativos -> HAgnostic News -> Opções (os três pontos no canto superior direito) -> Desinstalar para todos os usuários

maxoumime
fonte
2
A desinstalação não faz nada. Este erro ocorre mesmo em dispositivos que não possuem o aplicativo instalado.
IgorGanapolsky
3
@maxoimime o que acontece quando você publica a nova versão na Play Store. O usuário precisa desinstalar o aplicativo antes de instalar a nova versão? Ou o usuário conseguirá atualizar o aplicativo sem problemas?
Pedro
@maxoimime essa resposta funciona. Você pode remover seu comentário. É enganoso para a maioria dos usuários
AL-zami de
1
Esse foi o problema para mim também. Acontece que meu aplicativo também foi instalado no Samsung Secure Folder.
Romano de
Eu enfrentei esse problema porque, por alguns motivos, alguns aplicativos desinstalados anteriormente eram "não instalados para este usuário". Mas tenho apenas um usuário no meu telefone. Isso é estranho
Rémi Rousselet
88

Eu encontrei esse problema no meu projeto também.

Isso me ajudou, então espero que ajude outra pessoa:

adb uninstall "com.domain.yourapp"

A solução é daqui.

Jirimertin
fonte
Resposta correta, +1 para salvar meu dia :)
Saeed
1
Esta é a resposta correta, pois eu já havia desinstalado o aplicativo do telefone para todos os usuários, mas continuava recebendo o mesmo erro. Obrigado
Tarek K. Ajaj
1
Usuário do Xamarin Forms aqui. Esta foi a resposta para mim. Eu tinha desinstalado o aplicativo do telefone, mas não foi o suficiente.
Brunner
sim, isso funciona para mim também, não aparece na lista de aplicativos!
sl45sms de
Eu tinha tanta certeza de que essa era a resposta certa que votei positivamente antes mesmo de tentar e, como esperado, funcionou. Obrigado!
Jay Yoon
17

Se a versão do aplicativo que você instalou não foi desenvolvida com o mesmo keystore / certificado de assinatura, ela terá uma assinatura diferente. Por padrão, cada máquina de construção terá um certificado de depuração diferente, a menos que você especifique como ele deve ser assinado de acordo com a documentação do Google , que pode ser usada para garantir que seu aplicativo seja construído com a mesma chave de depuração, independentemente de qual computador você construiu o aplicativo em.

Para prosseguir com a instalação, você deve desinstalar a versão existente e tentar novamente.

Jake_
fonte
14

Isso acontece quando você instala o aplicativo com diferentes versões no seu celular / emulador.

Basta desinstalar o aplicativo existente para resolver o problema

Muhammad Ashfaq
fonte
10

Isso acontece principalmente quando o telefone tem a versão do aplicativo da Google Play Store instalada. Você pode criar o código com o mesmo armazenamento de chaves / certificado usado para sua versão de produção ou apenas desinstalá-lo do telefone e construí-lo com seu armazenamento de chaves / certificado de depuração

COMO
fonte
Estou enfrentando o mesmo problema mencionado na pergunta. Você pode me informar como posso construir o código com um keystore / certificado anterior? Meu cliente me forneceu o arquivo de armazenamento de chave, mas não sei como posso construir meu android nativo react com o arquivo de armazenamento de chave fornecido por meu cliente.
Yousaf Iqbal
Não faço Android há algum tempo, mas de acordo com isto: developer.android.com/studio/publish/app-signing#sign_release , você deve ir para Build> Generate Signed Bundle / APK, e em 'Key store path campo ', pressione' Escolher existente ... '
AS
6

com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Falha ao finalizar a sessão: INSTALL_FAILED_UPDATE_INCOMPATIBLE: As assinaturas do pacote [MY REACT NATIVE APP NAME HERE] não correspondem à versão instalada anteriormente; ignorando!

Recebi este erro ao tentar instalar meu aplicativo React Native Android em um dispositivo conectado usando este comando:

react-native run-android --variant=release

Eu também tinha um emulador rodando no meu computador.

Depois de sair do emulador , a execução desse comando foi bem-sucedida.

Beau Smith
fonte
6

Hoje, enfrentei o mesmo problema no meu dispositivo Samsung. No meu caso específico, o aplicativo NÃO aparecia no telefone, mas estava INSTALADO , então não consegui desinstalá- lo / removê- lo. Assim, tive que desinstalar o aplicativo usando o terminal : $ adb uninstall "com.domain.yourapp" Minha árvore de projeto é parecida com esta (visualização parcial):

└── com
    └── gluonapplication
        ├── DrawerManager.java
        ├── StartApplication.java
        └── views
            ├── PrimaryPresenter.java
            ├── PrimaryView.java
            ├── SecondaryPresenter.java
            └── SecondaryView.java

Então, para mim, o comando foi: $ adb uninstall com.gluonapplication Uma vez feito, instalei o aplicativo via terminal:

$ cd /path/to/apk/
$ adb install -t myAwesomeApp.apk  # -t means test install

Isso é o que funcionou para mim. Espero que esta resposta seja útil.

Qazi Fahim Farhan
fonte
5

Se você estiver tentando instalá-lo em um emulador, mas tiver outro telefone conectado ao computador via USB, desconecte o cabo USB ou desative a depuração USB no dispositivo físico. (Eu mesmo gastei 30 minutos nisso.)

waliurjs
fonte
1
Esse era o meu problema. Eu estava com meu telefone conectado ao computador para carregar e estava tentando rodar em um emulador.
user3486427
3

Eu tenho o mesmo erro. Desinstalei o aplicativo do meu dispositivo virtual e executei novamente o comando: 'react-native run-android'.

Wiezalditzijn
fonte
1

Estou com o mesmo problema, estava funcionando bem no AVD, mas no meu celular não estava ok. Desinstalei o aplicativo do meu telefone e ele está funcionando bem.

Rafael Ramon
fonte
1

Este erro aconteceu comigo quando uma compilação anterior no meu simulador / telefone estava sendo carregada com credenciais diferentes. O que eu tive que fazer foi executar:

adb uninstall com.exampleappname

Depois de fazer isso, fui capaz de executar novamente a compilação e gerar um APK.

Ariel Salem
fonte
0

Você precisa desinstalá-lo porque está usando uma assinatura diferente da original. Se não estiver funcionando, pode ser porque ainda está instalado para outro usuário no dispositivo. Para desinstalar completamente, vá para Configurações -> Aplicativos -> (aplicativo específico) -> Opções (os três pontos no canto superior direito) -> Desinstalar para todos os usuários.

Eu também tenho esse problema que o tempo já instalado app iônico (mesmo nome de pacote) remove do meu telefone depois de funcionar perfeitamente.

Mahendren
fonte
0

Eu tive esse problema em um dispositivo Samsung, desinstalar o aplicativo deu a mesma mensagem. O problema é que o aplicativo também foi instalado na área "Pasta segura" do telefone. Vale a pena verificar se este é o seu cenário.

Eliram
fonte
0

Vá para o Android Studio -> Gerenciador de AVD -> Selecione seu AVD e limpe os dados do usuário

Não há necessidade de reinstalar o AVD inteiro.

Mingliang94
fonte
0

você precisa desinstalar completamente para dispositivos LG usando cmd adb uninstall packageName

v.Vinh
fonte
eles respondem a esta pergunta há 4 anos com o que você está sugerindo
Gonzalo Garcia
0

Isso aconteceu comigo em um projeto React Native quando eu estava renomeando o ID de pacote de um aplicativo e ele entrou em conflito com outro ID de pacote que eu já havia usado antes. Eu consertei executando uma reinstalação:

  1. Encontre o aplicativo na tela inicial do simulador, mantenha pressionado o ícone do aplicativo, pressione App infoe escolha "DESINSTALAR".

  2. Execute react-native run android.

Jamie Birch
fonte
0

Isso ocorre devido à disponibilidade da versão anterior do Aplicativo, que não está instalada no aparelho, mas seus dados estão presentes na memória do aparelho. Portanto, não consegue atualizar os dados do aplicativo desinstalado no dispositivo

Experimente isto:

Vá para Configurações do dispositivo ==> Aplicativos (todos os aplicativos) ==> pesquise seu aplicativo OU pesquise por ' cliente ' ==> Na tela de informações do aplicativo , pressione a opção de pontos triplos no canto superior direito ==> selecione ' Desinstalar para todos os usuários '==> uma mensagem aparece, selecione' OK '

Funciona para mim sempre que esse erro ocorre

Harshal Patil
fonte
0

No meu caso, o problema era que instalei um aplicativo com o nome do pacote, digamos com.example.package usando o Android Studio no meu dispositivo. Criei outro aplicativo com o mesmo nome de pacote e estava tentando instalá-lo no meu dispositivo. Isso é o que estava causando o problema. Portanto, basta verificar em seu dispositivo se outro aplicativo com o mesmo nome de pacote já existe ou não.

ANUJ GUPTA
fonte
-1

No meu caso, desinstalar o aplicativo instalado no dispositivo conectado resolveu meu problema

Long Nguyen
fonte
-5

Apenas 1 emulador ou dispositivo pode ser aberto por vez. Certifique-se de não ter vários emuladores em execução.

Plaimanus Lueondee
fonte