Android Studio: não é possível recuperar a chave


94

Eu pesquisei StackOverflow por um tempo, mas eu só queria ter certeza ...

Limpei meu laptop há um tempo e fiz backup de todos os meus arquivos. Fiz backup do meu arquivo android.jks e ele está de volta no lugar. Quando tento gerar um APK assinado, recebo o mesmo erro terrível que todos estão recebendo:

Error:Execution failed for task ':app:packageRelease'.
> Failed to read key conjugationappkey from store     
"/Users/wasimsandhu/android.jks": Cannot recover key

Eu tenho meu android.jks, a senha da chave, a senha do armazenamento de chaves. Está tudo correto. o que estou perdendo? Eu fiz backup de todos os meus arquivos, então se houver um arquivo específico de que preciso, posso encontrá-lo, mas não tenho ideia do que fazer ...

Se eu não estou fazendo sentido, por favor, me peça para esclarecer. Obrigado!


2
Se você usou o caractere & ou @ em sua senha de armazenamento de chaves, não role para baixo até a seção de resposta, pule para este link , para a resposta de sharma.
meyasir

Respostas:


115

Não estou surpreso que isso não tenha ganhado força, mas aqui está o que eu fiz para quem tropeçar neste post.

Como eu disse, todos os meus arquivos foram armazenados em backup. Restaurei o arquivo android.jks de um backup mais antigo. Então, abri uma janela do Terminal e digitei o seguinte:

keytool -storepasswd -new [insert new keystore password] -keystore [insert keystore file name]

keytool -keypasswd -alias [insert alias] -new [insert new key password] -keystore [insert keystore file name]

O armazenamento de chaves e as senhas da chave devem ser iguais! Isso resolveu meu problema e espero que ajude você também.


5
Obrigado! Como você descobriu que as senhas devem ser as mesmas? Comecei a receber esse erro hoje. Até agora tudo funcionou bem com duas senhas diferentes.
Alen Siljak

6
Minhas senhas são as mesmas e ainda recebo este erro. Consegui assinar a versão anterior com a mesma chave. Agora o que devo fazer?
Tushar Gogna

1
Eu tenho enfrentado o mesmo problema. Anteontem eu gerei o APK assinado com sucesso e hoje novamente o mesmo problema. Qualquer um pode ter uma solução permanente!
Neo

4
Está dando este erro ainda agora no meu caso: "erro de keytool: java.security.UnrecoverableKeyException: Não é possível recuperar a chave"
0xAliHn

2
Para mim também, o mesmo problema. depois de executar a primeira linha, ele pede uma senha. Eu dou, mas então ele diz "erro de keytool ... keystore foi adulterado ou a senha estava incorreta"
Ammar Bukhari

64

[Atualização: isso não funciona mais no Android Studio 3.0 e superior]

Enfrentei o problema semelhante e nenhuma das soluções funcionou depois de perder 3 horas na Internet, decidi cavar fundo.

Aqui está como eu resolvi: O erro "Não é possível recuperar a chave" para mim era porque minha "senha do keystore" estava correta, mas o "Senha da chave" (do alias da chave) estava incorreta . Eu tinha certeza de que as duas senhas eram as mesmas, mas para minha consternação não eram e eu não sabia qual era a segunda senha. Como eu já havia assinado um APK antes de verificar o arquivo de log que pode ser encontrado:

  • C: \ Users \ your_username \ .AndroidStudio2.1 \ system \ log \

Abra os arquivos de log a partir da data em que você assinou o apk e procure as seguintes entradas:

 INFO - .project.GradleExecutionHelper - Passing command-line args to Gradle Tooling API: [--configure-on-demand, -Pandroid.injected.invoked.from.ide=true, 
-Pandroid.injected.signing.store.file=E:\HobbyProjects\XYZProject\gpsjs.jks, 
-Pandroid.injected.signing.store.password=***KeyStorePassword***, 
-Pandroid.injected.signing.key.alias=***alias_name***, 
-Pandroid.injected.signing.key.password=***Key password***, 

E você encontrará as senhas em texto simples. Isso funcionará até mesmo se você esquecer as senhas.


3
SIM! FINALMENTE! Minha senha estava no arquivo "idéia" dentro da pasta que você mencionou. Eu até tentei usar um cracker de senha, mas ele me deu o alias pass e pensei que fosse o keystore, mas não era.
George

Obrigado! Estava usando o master passwordque inseri ao assinar o apk, mas só precisava repetir o key password.
JCarlosR

Eu nunca tinha visto um arquivo de log. Verificar os arquivos de log me dá uma pista muito forte. Obrigado.
hata

7
Isso funciona para AndroidStudio3.0? Estou vendo minhas senhas como *********.
TheLearner

2
@Androidcoder A equipe do Android Studio corrigiu essa lacuna nas versões recentes.
Build3r

24

Se isso puder ajudar alguém - o problema no meu caso foi que a "senha do armazenamento de chaves" e a "senha da chave" estavam incorretas.


12

Tentei todas as sugestões fornecidas em respostas e comentários :(

Minha senha de chave e senha de armazenamento de chave são exatamente as mesmas. Usando o Android Studio 3.4

O que funcionou para mim foi forçar o encerramento do Android Studio, começar de novo, limpar e reconstruir o projeto e então gerar o apk assinado. todas as configurações são exatamente iguais, mas funcionou desta vez


3
Limpei e reconstruí o projeto e então funcionou bem. +1 up
sanjeeb

1
Isso funcionou para mim. Não é um "recurso" legal para um IDE atrapalhar o gerenciamento de informações cruciais como essa.
Marc-André Weibezahn

Confirmado no Android Studio 3.6.2 PS Eu te amo
bjm904

9

[Android Studio 3.3] Recebi o erro 'não é possível recuperar a chave' ao gerar um APK assinado. Pude verificar em um antigo idea.log para ver se minha senha estava correta: Armazenamento de chaves e senhas de chaves eram correta idênticas e corretas.

Atualizando a senha da chave no terminal:

keytool -keypasswd -alias MYKEY -keystore KEYSTORE

Parece não ser mais possível ter senhas idênticas para armazenamento de chaves e chave. O keytool deu-me um erro, quando tentei. Depois de definir uma senha diferente para a chave, o Android Studio gerou um APK assinado.

Talvez, nas versões anteriores do Android Studio, as senhas deviam ser idênticas - agora pode ser o contrário.


Atualizei meu aplicativo há 2 semanas e hoje não funcionará. Utilizo isso para alterar as senhas para que fiquem iguais e atualizei o Android Studio, agora lancei uma nova versão.
Alejandro Cumpa

Entre a resposta de @ Build3r e esta, consegui definir as duas senhas com valores diferentes e aceitáveis ​​e assinar meu aplicativo com sucesso. Obrigado rapazes!
Peter Gluck

3

Isso pode ajudar alguém.

Alguns dias antes, fiz backup do meu projeto android no gitlab e instalei o Windows 10. Depois disso, eu o clonado. Eu sabia exatamente o apelido da chave e ambas as senhas.

Então, ao gerar o apk assinado, inseri essas credenciais, mas falhei.

Coloquei o arquivo jks na pasta do aplicativo. Eu o removi de lá e criei uma pasta separada na pasta raiz do projeto android e coloquei o arquivo jks lá.

Em seguida, tentei limpar, reconstruir o projeto e reiniciar o Android Studio. Finalmente, ele construiu o apk assinado: D


2

Esse problema ocorre apenas quando a senha da chave ou a senha do armazenamento de chaves não correspondem.


2

Minhas senhas eram as mesmas e ainda recebi este erro. Limpar, reconstruir e reiniciar o Android Studio não funcionou para mim. A única solução funcionou para mim foi mover o arquivo keystore.jks para um novo local. Espero que isto ajude.


1

Acabei de remover a seção SigningConfigs do meu arquivo gradle do aplicativo. Em seguida, reconstruí o projeto e funcionou novamente.


0

Tive a sorte de verificar no Android Studio a guia Estrutura do projeto / Assinatura e encontrei a senha da chave e a senha da loja listadas em texto simples. Eu pensei que eles eram iguais um ao outro, mas não eram.


0

Se o Eclipse estiver em execução, tente desligá-lo e gerar um apk assinado novamente.

No meu caso, verifiquei se todas as senhas estão corretas e até gerei um novo armazenamento de chaves do Android Studio. Ainda não funcionou, mas depois que desliguei o eclipse que está em execução, tudo funcionou, com o armazenamento de chaves antigo que usei ou com um recém-gerado.


0

Compactei meu arquivo de assinatura antes de criá-lo. Quando recebi esse erro, usei novamente. Você pode usá-lo se tiver um backup. Acho que quebramos coisas antes que eles percebam.


0

Eu estava enfrentando o mesmo problema. No meu caso, o projeto After sync com os arquivos gradle resolveu esse problema. Isso pode ajudar alguém.


0

Simplesmente removi o .imlarquivo do meu projeto . Aí remodelou o projeto e deu certo mais uma vez.

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.