Aplicativo Android não instalado. Um pacote existente com o mesmo nome e uma assinatura conflitante já está instalado


131

No meu emulador, quando tento fazer uma atualização do meu apk programaticamente. Eu recebo:

Android App Not Install.

An existing package by the same name with a conflicting signature is already installed

insira a descrição da imagem aqui

Ainda estou na fase de teste dessa atualização, então o arquivo que eu baixa é um apk assinado de uma versão anterior, que acho que deve funcionar sem problemas.

A partir da sugestão em: um pacote existente com o mesmo nome e com uma assinatura confidencial já está instalado , tentei executar o emulador no modo de depuração e no modo normal ... nem funcionou.

Alguma idéia do que estou perdendo?


1
usar mesma assinatura para assinar o apk antes de instalar
Praveen Sharma

Esse problema é gerado devido à incompatibilidade de arquivos de assinatura ou armazenamento de chaves e encontre o link para a solução: readyandroid.wordpress.com/…
Ready Android

Respostas:


97

O problema são as chaves que foram usadas para assinar os APKs. Por padrão, se você estiver executando diretamente do seu IDE e abrindo o emulador, o APK instalado no emulador é assinado com sua chave de depuração (geralmente instalada em ~ / .android /debug.keystore), portanto, se o APK anterior tiver sido assinado com uma chave diferente da que você está usando no momento, você sempre terá o conflito de assinaturas; para corrigi-lo, verifique se está usando a mesma chave para assinar ambos os APKs, mesmo que o APK anterior tenha sido assinado com uma chave de depuração de outro SDK, as chaves serão definitivamente diferentes.

Além disso, se você não sabe exatamente qual chave foi usada antes para assinar o apk e ainda deseja instalar a nova versão do seu aplicativo, basta desinstalar o aplicativo anterior e reinstalar o novo.

Espero que isto ajude...

Saudações!


Vou fazer um não dev assinar o apk e fazer um download / instalação manual dentro do emulador. O emulador deve fazer o download do outro apk não assinado por desenvolvedor e tentar fazer a atualização. Se isso funcionar, aceitarei sua resposta. Thx
James Oravec

@MartinCazares existe mesmo assim para obter a chave apk? para não perder meus dados de aplicativo?
precisa saber é o seguinte

Bem, se você instalou o aplicativo, deve ter a chave, caso contrário, como assinaria o apk? Se o apk anterior não foi criado por você, você precisa solicitar ao desenvolvedor a chave para o apk, exceto que não há como obter a chave usada para assinar um apk ...
Martin Cazares

Muito obrigado por isso! Você salvou meu dia e minha equipe! Haha
perozzo

1
Eu tenho um aplicativo no LIVE no playstore, agora mantive o aplicativo instalado no dispositivo de teste e agora Para atualizar a versão mais recente do aplicativo, estou atualizando "versionno" e "versionname" no arquivo build.gradle do aplicativo. Agora eu fiz uma versão compilar com chave assinada, enquanto estou tentando instalar essa versão através de um erro ::: Um pacote existente com o mesmo nome e uma assinatura conflitante já está instalado. E não sendo instalado também. Por favor, ajude.
Tarit Ray

195

Eu tive a mesma mensagem de erro, mas essas respostas não ajudaram. No 4.3 nexus 7, eu estava usando um usuário que NÃO era o proprietário. Eu havia desinstalado a versão mais antiga, mas continuava recebendo a mesma mensagem.

Solução: tive que fazer login como proprietário e acessar Configurações -> Aplicativos e, em seguida, deslize para a guia Todas. Role até o final da lista em que as versões antigas estão listadas com a marca 'não instalado'. Selecione-o e pressione o botão 'configurações' no canto superior direito e, finalmente, 'desinstalar para todos os usuários'


2
Eu tive que passar de "Downloaded" para a lista "All" para encontrá-lo na lista de aplicativos.
precisa saber é o seguinte

1
Como você mencionou, certifique-se de rolar todo o caminho até o final - os aplicativos "não instalados" não estão listados em ordem alfabética.
Jmcmann

3
OBRIGADO!!! Esse também foi meu problema depois de emprestar meu teste Nexus 7 a um amigo. Pensei que minhas chaves estavam corrompidas ... Excluí esse usuário apenas para reduzir futuras confusões.
precisa

1
Economizei meu tempo. Parabéns.
Piyush Patel

2
Obrigado. Eu tive que de login em todos os usuários e desinstalação 1 por 1.
Ricardo

8
 Go to Settings > Apps, find and open the app info. Then, open the overflow menu (3 vertical dots), and choose Uninstall for all users.

insira a descrição da imagem aqui

Vá para Configurações> Aplicativos, encontre e abra as informações do aplicativo. Em seguida, abra o menu de estouro (3 pontos verticais) e escolha Desinstalar para todos os usuários.


Isso me ajudou - obrigado. Por alguma razão, eu tinha duas versões do meu aplicativo aparecendo lá, mesmo depois de desinstalá-lo na minha tela inicial.
Joro Tenev

Graças Joro Tenev votação Me
Keshav Gera


5

Há uma diferença entre arquivos APK assinados e não assinados. Provavelmente você já tinha assinado um contrato com lá. Você só precisa excluir o não assinado antes de instalar a versão assinada. Como isso pode ser feito varia na versão exata, mas, em geral, vá no emulador para settings-> application, clique longo no aplicativo e exclua / remova / desinstale-o.


Eu vou fazer um apk não assinado e baixar o apk não assinado e ver se isso resolve, se isso acontecer, posso testar os aplicativos assinados com hardware. Aceito a resposta se for esse o caso.
James Oravec

Estou tentando fazer a atualização de dentro do meu programa, portanto, a desinstalação / instalação manual não funcionará.
James Oravec

Quando fiz a instalação do aplicativo não assinado, simplesmente recebi app not installed. Eu verifiquei as configurações do emulador e ele foi Allow installation of apps from unknown sourcesverificado. Portanto, essa não parece ser a solução.
James Oravec

dando-lhe um voto positivo para as sugestões. Acho que nos ajudou a chegar à solução final. obrigado!
James Oravec

5

Se você estiver usando o apk de depuração, a chave usada para assiná-lo está em

C:\Users\<user>\.android\debug.keystore

Se você usar a mesma chave, não deverá haver conflito durante a instalação.


Obrigado Santiago, último dia mudei o disco rígido da máquina de mecânico para Solid State, portanto, preciso atualizar o Windows, estava enfrentando o mesmo problema e copiei o arquivo debug.keystore da pasta anterior do Windows para o novo janelas de pasta a questão fica resolvido :)
Arslan Sohail

Obrigado pela resposta, porque realmente resolveu meu problema, estou programando com um amigo e tivemos esse problema com frequência, agora que estamos compartilhando a chave de depuração, está tudo bem.
Gustavo Magalhães

5

Se as soluções acima não funcionaram para você, você pode fazer o seguinte:

1) instalando o aplicativo na Appstore.
2) atualizando-o com sinal APK com a mesma versão atualizada do nome do pacote.

Então, basicamente, existem dois tipos de APKs.

1) você fez o upload no playstore conhecido como APK original.
2) faça o download do playstore conhecido como APK derivado.

Neste caso, basicamente, você está baixando o apk derivado e atualizando-o com APK original.

Para que ele funcione bem, o novo APK lançado assinado foi enviado no modo de teste interno da Google Play Store e faça o download do APK derivado para verificar o cenário de atualização.

insira a descrição da imagem aqui



1

Eu tive um problema em que a compilação de depuração e versão não é instalada nos dispositivos que usei para depuração. A mesma mensagem seria exibida ao tentar instalar a nova versão. A única solução alternativa foi desinstalar a versão atual e instalar a nova.

Parece que o Android studio marca o apk que ele instala para que a instalação usando os gerenciadores de pacotes faça uma distinção entre a versão instalada para depuração e as versões baixadas do Google play ou outras fontes externas (isso nunca aconteceu comigo ao usar o eclipse).


1

Pode ser que o aplicativo não seja desinstalado com sucesso. Se o seu dispositivo for esse o caso, você pode tentar este método.

Primeiro obtenha o nome do pacote do aplicativo, por exemplo, 'com.xxx.app', você pode usar o Root Explorer e encontrá-lo no arquivo Manifest (o RE pode decodificar o arquivo). então você pode usar este script para desinstalá-lo:

adb shell pm uninstall com.xxx.app // replace to package name that you want to remove

1

Mesmo erro de pacote:

  1. Crie um novo pacote no seu aplicativo com nome diferente.
  2. Copie e cole todos os arquivos no seu pacote antigo para o novo pacote.
  3. Salvar código.
  4. Exclua o pacote antigo e limpe e reconstrua o projeto.

1. Muito 2. curto 3. poderia 4. usar 5. explicação.
Yunnosch

1

insira a descrição da imagem aquiEu tive que fazer login como proprietário e ir para Configurações -> Aplicativos e deslize para a guia Todos. Role até o final da lista em que as versões antigas estão listadas com a marca 'não instalado'. Selecione-o e pressione o botão 'configurações' no canto superior direito e, finalmente, 'desinstalar para todos os usuários'


Isso funcionou para mim, mas ... agora, quando o download é feito no meu site, o aplicativo não é baixado (pelo menos para a pasta Download). Nenhum erro relatado. Simplesmente não acontece. Quando conecto meu telefone ao computador, posso copiar o APK para o telefone e instalar sem erros relatados.
Ron

0

Pode haver outro motivo para o seu aplicativo não ser atualizado quando você altera / adiciona / remove o shareId no AndroidManifiest.

"android: sharedUserId"

Por favor, verifique isso também.

Para evitar, recomendo usar sharedUserId em seu aplicativo, apesar dos requisitos atuais que você precisa ou agora.


0

Eu tentei tudo o que precede e não funcionou.

Descobri que, apesar de desinstalar o aplicativo, uma nova versão do aplicativo ainda dá o mesmo erro.

Foi isso que resolveu: vá para Configurações -> Geral -> Gerenciador de aplicativos -> escolha seu aplicativo -> clique nos três pontos na parte superior -> desinstalar para todos os usuários

Depois de fazer isso, agora ele é desinstalado e permitirá a instalação da sua nova versão.

Espero que isto ajude.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.