Não é possível instalar o apk assinado no dispositivo manualmente, erro “App não instalado”


107

Eu gostaria de publicar meu aplicativo no GooglePlay, mas primeiro gostaria de fazer um último teste com o apk assinado para garantir que todas as chaves de API usadas estão funcionando corretamente com a versão de lançamento (GMaps, Facebook, etc)

Acabei de fazer uma versão assinada do meu aplicativo com nossa chave de lançamento e, quando tento instalar o aplicativo no dispositivo, recebo um erro:

insira a descrição da imagem aqui

Tentei copiar o apk para o dispositivo e instalá-lo com um aplicativo instalador apk.

O estranho é quando faço o mesmo processo com a chave de assinatura de depuração, tudo está bem, posso instalar e executar o aplicativo.

Aqui estão as etapas do procedimento:

Eu seleciono a chave de liberação , digito a senha.

Aqui estão as etapas do procedimento:

Eu seleciono o tipo de versão de compilação em vez de depuração

Eu seleciono tipo de versão de compilação em vez de depuração

Caso eu também tenha definido no arquivo gradle as chaves de assinatura, mas devo admitir que não sei se é necessário.

Caso eu também tenha definido no arquivo gradle as chaves de assinatura, mas devo admitir que não sei se é necessário.

Eu tentei 7 sete vezes agora, então presumo que esse problema não seja apenas uma senha digitada incorretamente , também posso fazer isso funcionar com a chave de assinatura do Android de depuração padrão.

Por favor, ajude se você puder.


1
Salam. Esta resposta pode resolver seu problema: http://stackoverflow.com/a/42745459/1676736
Sayed Abolfazl Fatemi

estou enfrentando o mesmo problema. Qual foi o verdadeiro motivo? Você descobriu? @Adam Varhegyi
Rohit Singh

@RohitSingh A resposta abaixo, lol.
Adam Varhegyi

Quer dizer, o aplicativo não foi desinstalado completamente, mesmo que você desinstalou? Ou é uma coisa apenas Android 5.0 (ou mesmo superior).
Rohit Singh de

1
@RohitSingh Meu problema era exatamente o que a resposta descreve. O aplicativo foi instalado para outro usuário no telefone e não o vi com um usuário diferente. Tive que desinstalá-lo para "Todos os usuários"
Adam Varhegyi

Respostas:


81

Você pode estar usando o dispositivo Android 5.0 ou superior.

Basta ir para Configurações -> Aplicativos -> Clique em seu aplicativo. ---> Na página de informações do aplicativo no menu da barra de ação, haverá uma opção chamada "Desinstalar para todos os usuários", clique nela. Seu aplicativo será completamente desinstalado e agora você pode tentar instalar a nova versão sem problemas. Espero que isso te ajude

Verifique minha solução no link abaixo.

Link 1

Espero que ajude você.


Como diabos eles poderiam fazer isso dessa forma. Trabalhando btw obrigado.
Adam Varhegyi

2
Embora este link possa responder à pergunta, é melhor incluir as partes essenciais da resposta aqui e fornecer o link para referência. As respostas somente com link podem se tornar inválidas se a página vinculada mudar.
SOFe

Cara, muito obrigado, esse bug me levou uma semana para descobrir
Diego Vinícius

Que bom, te ajudei !! @ DiegoVinícius
Ragu Swaminathan

66

Para os Updated Android Studio 2.3usuários atuais, esta resposta é para você, já que dificilmente as pessoas usam o Eclipse hoje em dia para o desenvolvimento do Android, já que o Android Studio tem grandes avanços.

Portanto, siga este caminho para criar seu Signed apkarquivo.

  1. Build> Gerar Signed apk.
  2. Crie Keystore path.
  3. Coloque Password, alias, key password.
  4. Build typeselecione de acordo (por exemplo, para liberar no uso da loja release).
  5. Signature Versionselecione ambas as caixas de seleção V1e V2.
  6. Finsih.
  7. Vá de exploreronde você selecionou o apk para armazenar e você verá o .apknome do arquivo como app-release.apkusá-lo.

14
Selecionar a assinatura V1
resolveu

você economizou muito tempo
curiousMind

Trabalhe para mim. Economizar tempo . Obrigado
YeeKhin,

5
Verificar ambos V1e V2foi a solução!
Alex Jolig

1
Verificar V1 resolveu o problema para mim. Anteriormente, apenas V2 era verificado.
BluJ IT

51

selecionar a versão de assinatura v1 e v2 resolveu o problema para mim .... experimenteinsira a descrição da imagem aqui


4
Esse era exatamente o meu problema. a questão permanece por que devemos também marcar V1 (assinatura jar)? e como o Google espera que saibamos disso?
A.Alqadomi

Não é obrigatório. Você deve marcar AMBAS essas caixas de seleção, se possível, mas se o novo mecanismo de assinatura V2 causar problemas, você pode marcar ambas se encontrar problemas.
Shubhamhackz

43

A mesma coisa aconteceu comigo, contanto que eu gerei meu apk em Build> Build APK. Eu poderia instalar e desinstalar o apk quantas vezes fossem sem nenhum problema, mas em vez disso, se gerasse o Build> Gerar APK assinado, quando passei o apk para o telefone e tentei instalá-lo, ele só me permitiu um ocasião, a mesma que saiu a seguinte mensagem:

insira a descrição da imagem aqui

até então tudo estava bem se eu selecionasse "INSTALAR DE QUALQUER MANEIRA", mas o que acontecia se eu desinstalei o aplicativo e quisesse reinstalá-lo (um cenário possível), aconteceu o seguinte:

insira a descrição da imagem aqui

então resolvi o problema desativando o play protect, o que consegui (no Google Play)> Menu> Play Protect> Pesquisar ameaças de segurança (desabilitar).

insira a descrição da imagem aqui

insira a descrição da imagem aqui


Esta solução funciona para mim. Outra mudança do Google +1
Pronto para Android em

Você salvou minha vida!
Akcoban

Você poderia nos dizer por que isso acontece? O que estou fazendo de errado que faz com que essa seja a solução?
sparkhead95 de

16

"Aplicativo não instalado" é exibido quando um aplicativo com o mesmo pacote já está instalado no mesmo dispositivo. apenas exclua seu primeiro aplicativo que você estava usando para fins de teste antes de torná-lo no apk assinado. Isso vai funcionar. Felicidades!


8
Sim, eu sei, mas não foi instalado anteriormente.
Adam Varhegyi

6
Como posso instalar o apk com uma versão superior, sem excluir o aplicativo atual?
user7856586

12

Selecione a versão da assinatura v1 e v2 para resolver o problema

insira a descrição da imagem aqui

esquema v1

Um arquivo JAR pode ser assinado usando a ferramenta jarsigner de linha de comando ou diretamente por meio da API java.security. Cada entrada de arquivo, incluindo arquivos não relacionados à assinatura no diretório META-INF, será assinada se o arquivo JAR for assinado pela ferramenta jarsigner. Para cada entrada de arquivo assinada no arquivo JAR assinado, uma entrada individual de manifesto é criada para ela, contanto que ainda não exista no manifesto

Esquema V2

As assinaturas v1 não protegem algumas partes do APK, como metadados ZIP. O verificador de APK precisa processar muitas estruturas de dados não confiáveis ​​(ainda não verificadas) e, em seguida, descartar os dados não cobertos pelas assinaturas. Isso oferece uma superfície de ataque considerável. Além disso, o verificador de APK deve descompactar todas as entradas compactadas, consumindo mais tempo e memória. Para resolver esses problemas, o Android 7.0 introduziu o esquema de assinatura APK v2

Por padrão, o Android Studio 2.2 e o plug-in do Android para Gradle 2.2 assinam seu aplicativo usando o APK Signature Scheme v2 e o esquema de assinatura tradicional, que usa a assinatura JAR.

Recomenda-se usar o APK Signature Scheme v2, mas não é obrigatório. por favor veja os detalhes


10

No Android Studio 3.0 e superior

Conforme descrito aqui

Observação: o botão Executar cria um APK com testOnly = "true", o que significa que o APK só pode ser instalado via adb (que o Android Studio usa). Se você quiser um APK depurável que as pessoas possam instalar sem adb, selecione sua variante de depuração e clique em Build Bundle (s) / APK (s)> Build APK (s).

Adicionar android:testOnly="false"dentro da tag do aplicativo em AndroidManifest.xml

Referência: https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html


7

Acima, a resposta shubham soni funciona para mim, na verdade acontece com a versão do Android> = 5.0. Acima você pode instalar, basta usar isso ao criar seu apk insira a descrição da imagem aqui...


1
por que essa resposta duplicada?
sziraqui

@sziraqui: Subhankar soni não mencionou por que "Não é possível instalar o apk assinado no dispositivo manualmente, ocorreu o erro“ App não instalado ”. Enfrentei o mesmo problema relacionado à versão do Os que mencionei acima, então, para melhor compreensão, mencionei que. algo errado em minha resposta? .Para a versão do Android <= 5.0, você poderá instalar o mesmo apk sem marcar as caixas de seleção das duas versões de assinatura.
Amit raj

Sua resposta é apenas adicionar mais um ponto à resposta original, então deveria ser um comentário. Se você está postando isso como uma resposta, você deve adicionar algum tipo de citação para apoiar sua afirmação do Android 5.0. E se o seu problema estivesse realmente relacionado ao IDE do Android e não à versão do Android?
sziraqui

Obrigado, a imagem na resposta me deu a ideia de tentar as assinaturas V1 e V2 habilitadas. Anteriormente, eu estava indo apenas com V1
Jasxir

6

Aqui eu resolvi esse problema

A razão por trás desse problema é que já existe um aplicativo com o mesmo nome de pacote no telefone, mas você não pode encontrá-lo no menu do telefone (U já fez a desinstalação, mas na verdade ainda está no seu telefone).

Para ver o aplicativo, vá para CONFIGURAÇÕES do telefone -> APLICATIVOS . Lá você pode ver o aplicativo, mas dentro dele o botão DESINSTALAR pode estar desabilitado. clique no botão flutuante do menu para ver Desinstalar para todos os usuários .

Após a desinstalação realizada para todos os usuários, instalei com sucesso meu apk assinado. Você também pode usar o adb para desinstalar o aplicativo do telefone.

adb uninstall package name

Além disso, se o seu celular oferecer suporte a vários usuários , verifique se o respectivo aplicativo não está instalado para outros usuários. Se estiver instalado para outras pessoas, primeiro desinstale o aplicativo anterior e tente novamente


4

É uma questão muito antiga, mas minha solução foi mudar o versionCode (aumentar) em build.gradle



4

minifyEnabled false

é o único que funcionou para mim após 3 dias de pesquisa em todo o fórum!


1
Isso parece ser apenas uma repetição da resposta existente .
Pang,

Com comentários adicionados.
robinCTS

Em outras palavras, isso deveria ter sido postado como um comentário sobre aquela resposta , não como uma resposta em si.
robinCTS

3

Isso pode ser porque você executa o arquivo APK de armazenamento externo em cartão SD. Basta copiar o arquivo APK para um problema interno de storagem será resolvido


1

Isso pode acontecer devido à sua escolha da versão da assinatura. Em alguns telefones, ocorrem erros de instalação se a versão da assinatura foi selecionada como V2. Portanto, se isso acontecer, tente selecionar V1, com certeza funcionará.


1

Eu enfrentei o mesmo problema hoje, lembrei que assinei meu apk com a "nova" assinatura do Google Play:


insira a descrição da imagem aqui


Certifique-se de que assinou seu aplicativo com a assinatura do Google Play.

Se você fez:

  • Instale uma atualização enviando seu apk para o console do Google (como você normalmente faria ao atualizar seu aplicativo):

insira a descrição da imagem aqui


  • Depois de fazer o upload com sucesso, abra o Artifact libraryno menu.
  • Você verá o apk que acabou de enviar.
  • Pressione o botão de download e selecione Download derived APK.

Agora você poderá instalar o apk.


0

se sua versão do Android Studio for maior que 3.0

Parece que não podemos usar o apk diretamente depois de rodar no dispositivo a partir da pasta build -> output-> apk.

Depois de atualizar para o Android Studio 3.0, você precisa ir para Build -> Build Apk (s) e, em seguida, copiar o apk de build -> output -> apk -> debug

insira a descrição da imagem aqui


Título desta pergunta - "Cannot install signed apk". Você está se referindo ao apk de depuração.
KRK

0

Arquivo> Estrutura do projeto> Variantes de compilação> Selecionar versão> Certifique-se de que 'Configuração de assinatura' não esteja vazio> se estiver, selecione na janela suspensa $signingConfigs.release

Fiz isso com o Android Studio 3.1.4 e me permitiu criar um apk de lançamento após seguir todas as etapas acima de criar o apk de lançamento e a chave de lançamento e adicionar as informações ao gradle do aplicativo. Felicidades!


$signingConfigs.releasenão está disponível, apenas $signingConfigs.debugestá disponível.
KRK de

Em seguida, vá para Build> Generate APK> Select APK e siga as instruções.
Treewallie

0

Eu estava enfrentando o mesmo problema em meu aplicativo Android. Acabei de atualizar alguma biblioteca e, em seguida, criei o APK de assinatura. Agora seu trabalho.


0

Você não precisa desinstalar a versão do Google Play se o App Signing do Google Play estiver habilitado para o seu aplicativo, siga as etapas:
1. Faça uma versão assinada do seu aplicativo com a chave de lançamento
2. Vá para o console de desenvolvedor do Google Play
3. Crie uma versão de faixa fechada (versão alfa ou beta) com a nova versão assinada de seu aplicativo
4. Agora você pode baixar o apk assinado por App Signing do Google Play , escolha APK derivadoinsira a descrição da imagem aqui

  1. Instale o APK derivado baixado

O motivo é que o App Signing by Google Play assina apps de lançamento com chaves diferentes, se você tiver um app instalado da Play Store e quiser testar a nova versão do app (gerado no Android Studio) em seu telefone, "App not installed" acontece porque a versão antiga e a nova versão foram assinadas por duas chaves diferentes: uma com App Signing do Google Play e outra com sua chave.



0

Desinstale o aplicativo de depuração no dispositivo ou apenas aumente o código da versão para superar esses problemas


0

No meu caso, eu estava tentando testar a instalação de um APK assinado e a versão atual instalada no meu dispositivo não tinha assinatura (criando uma versão de depuração diretamente do Android Studio)


0

É óbvio, mas ainda assim foi difícil descobrir para mim,

Verifique se o seu dispositivo móvel tem espaço suficiente para instalar o apk. e não está cheio.

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.