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
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?
android
android-install-apk
James Oravec
fonte
fonte
Respostas:
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!
fonte
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'
fonte
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.
fonte
Se você não quiser se preocupar com o arquivo keystore, remova o pacote completamente para todos os usuários.
Conecte seu dispositivo ao Mac / PC e execute
adb uninstall <package>
Trabalhou para mim.
Ref: /android/92025/how-to-completely-uninstall-an-app-on-android-lollipop
fonte
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.
fonte
app not installed
. Eu verifiquei as configurações do emulador e ele foiAllow installation of apps from unknown sources
verificado. Portanto, essa não parece ser a solução.Se você estiver usando o apk de depuração, a chave usada para assiná-lo está em
Se você usar a mesma chave, não deverá haver conflito durante a instalação.
fonte
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.
fonte
Se você usa vários usuários no android, verifique se o aplicativo está desinstalado em qualquer lugar.
fonte
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).
fonte
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:
fonte
Mesmo erro de pacote:
fonte
Eu 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'
fonte
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.
fonte
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.
fonte