Android Studio: не удается восстановить ключ


95

Некоторое время я искал StackOverflow, но я просто хотел убедиться ...

Некоторое время назад я протер свой ноутбук и сделал резервную копию всех своих файлов. У меня есть резервная копия файла android.jks, и он снова на месте. Когда я пытаюсь сгенерировать подписанный APK, это выдает ту же ужасную ошибку, которую получают все:

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

У меня есть android.jks, пароль ключа, пароль хранилища ключей. Все правильно. Что мне не хватает? Я сделал резервную копию всех своих файлов, поэтому, если есть конкретный файл, который мне нужен, я мог бы его найти, но я не знаю, что делать ...

Если я не понимаю, пожалуйста, попросите меня уточнить. Благодарность!


2
Если вы использовали символ & или @ в своем пароле хранилища ключей, не прокручивайте вниз до раздела ответов, перейдите по этой ссылке , чтобы получить ответ шармы.
meyasir 04

Ответы:


116

Я не удивлен, что это не получило никакой поддержки, но вот что я сделал для всех, кто наткнется на этот пост.

Как я уже сказал, все мои файлы были скопированы. Я восстановил файл android.jks из более старой резервной копии. Затем я открыл окно терминала и ввел следующее:

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]

Пароли хранилища и ключа должны совпадать! Это устранило мою проблему, и я надеюсь, что это поможет и вам.


5
Спасибо! Как вы узнали, что пароли должны быть одинаковыми? Я начал получать эту ошибку сегодня. До сих пор все работало с двумя разными паролями.
Ален Сильджак

6
Мои пароли такие же, и я все еще получаю эту ошибку. Мне удалось подписать предыдущую версию тем же ключом. Что мне теперь делать?
Тушар Гогна

1
Я столкнулся с той же проблемой. Позавчера я успешно создал подписанный APK, и сегодня снова та же проблема. Может ли у кого-нибудь постоянное решение!
Нео

5
В моем случае эта ошибка все еще выдается: «Ошибка keytool: java.security.UnrecoverableKeyException: Невозможно восстановить ключ»
0xAliHn

2
У меня тоже такая же проблема. после выполнения первой строки запрашивает пароль. Я даю его, но затем он говорит: «Ошибка keytool ... хранилище ключей было подделано или пароль был неверным»
Аммар Бухари

64

[Обновление: это больше не работает в Android Studio 3.0 и выше]

Я столкнулся с аналогичной проблемой, и ни одно из решений не помогло после того, как потратил 3 часа в Интернете, я решил покопаться.

Вот как я решил это: ошибка «Невозможно восстановить ключ» для меня возникла из-за того, что мой «пароль хранилища ключей» был правильным, но «ключевой пароль» (псевдонима ключа) был неправильным . Я был почти уверен, что оба пароля были одинаковыми, но, к моему ужасу, это не так, и я не знал, какой был второй пароль. Поскольку я уже подписал APK, прежде чем проверить файл журнала, который можно найти:

  • C: \ Users \ ваше_имя_пользователя \ .AndroidStudio2.1 \ system \ log \

Откройте файлы журнала с даты, когда вы подписали apk, и найдите следующие записи:

 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***, 

И вы найдете пароли в виде простого текста. Это сработает даже, если вы забудете пароли.


3
ДА! НАКОНЕЦ-ТО! Мой пароль находился в файле "идеи" внутри указанной вами папки. Я даже попытался использовать взломщик паролей, но он дал мне проход псевдонима, и я подумал, что это хранилище ключей, но это не так.
Джордж

Благодарность! Я использовал тот, master passwordкоторый ввел при подписании apk, но мне просто нужно было повторить key password.
JCarlosR

8
Это работает для AndroidStudio3.0? Я вижу свои пароли как *********.
TheLearner

1
В моем файле написано: -Pandroid.injected.signing.store.password = *********, -Pandroid.injected.signing.key.alias = mykey, -Pandroid.injected.signing.key.password = * ********
Androidcoder

2
Команда Android-студии @Androidcoder исправила эту лазейку в последних версиях.
Build3r

24

Если это может кому-то помочь - проблема в моем случае заключалась в том, что «Пароль хранилища ключей» и «Пароль ключа» были неправильными.


14

Все предложения перепробовал в ответах и ​​комментариях :(

Мой ключевой пароль и пароль хранилища ключей точно такие же. Использование android studio 3.4

Что сработало для меня, так это принудительный выход из Android Studio, запуск снова, очистка и перестройка проекта, а затем создание подписанного apk. все конфиги точно такие же, но на этот раз сработало


3
Я почистил и перестроил проект, и все заработало. +1 up
санджиб

1
Это сработало для меня. Не очень хорошая «возможность» для IDE испортить управление такой важной информацией.
Marc-André Weibezahn

Подтверждено в Android Studio 3.6.2 PS Я люблю тебя
bjm904

9

[Android Studio 3.3] При создании подписанного APK-файла возникает ошибка "Невозможно восстановить ключ". Мне удалось проверить старый файл idea.log на правильность моего пароля: пароли хранилища ключей и ключей были идентичны и верны.

Обновление ключевого пароля в терминале:

keytool -keypasswd -alias MYKEY -keystore KEYSTORE

Кажется, больше невозможно иметь одинаковые пароли для хранилища ключей и ключа. Keytool выдал мне ошибку, когда я попытался. После установки другого пароля для ключа Android Studio сгенерировала подписанный APK.

Возможно, в предыдущих версиях Android Studio пароли должны были быть идентичными - теперь может быть наоборот.


Я обновил свое приложение 2 недели назад, и сегодня не работает. Я использую это, чтобы изменить пароли на такие же и обновить Android Studio, теперь я выпустил новую версию.
Алехандро Кампа

Между ответом @ Build3r и этим я смог установить оба пароля на разные допустимые значения и успешно подписать свое приложение. Спасибо ребята!
Питер Глюк

3

Это может кому-то помочь.

За несколько дней до этого я сделал резервную копию своего проекта Android на gitlab, а затем установил Windows 10. После этого я клонировал его. Я точно знал псевдоним ключа и оба пароля.

Затем при создании подписанного apk я ввел эти учетные данные, но не смог.

Я поместил файл jks в папку приложения. Я удалил его оттуда и создал отдельную папку в корневой папке проекта Android и поместил туда файл jks .

Затем я попытался очистить, перестроить проект, а затем перезапустил студию Android. Наконец он построил подписанный apk: D


2

Эта проблема возникает только в том случае, если ваш ключевой пароль или пароль хранилища ключей не совпадают.


2

Мои пароли были такими же, но по-прежнему возникала эта ошибка. Очистить, перестроить и перезапустить студию Android у меня не сработало. Единственное решение сработало для меня - переместить файл keystore.jks в новое место. Надеюсь это поможет.


1

Я только что удалил раздел signatureConfigs из файла Gradle моего приложения. Затем перестроил проект, и он снова заработал.


0

Мне посчастливилось проверить в Android Studio вкладку «Структура проекта / подпись», и я нашел ключевой пароль и пароль хранилища, перечисленные в виде простого текста. Я думал, что они такие же, как друг друга, но это не так.


0

Если у вас запущено eclipse, попробуйте выключить его и снова сгенерировать подписанный apk.

В моем случае я проверил правильность всех паролей и даже создал новое хранилище ключей из студии Android. Он по-прежнему не работал, но после того, как я отключил работающее eclipse, все просто заработало, со старым хранилищем ключей, которое я использовал, или с новым сгенерированным.


0

Я уже заархивировал свой файл подписи, когда впервые его создал. Когда я получил эту ошибку, я использовал ее снова. Вы можете использовать его, если у вас есть резервная копия. Я думаю, что мы сломали вещи раньше, чем они заметят.


0

Я столкнулся с той же проблемой. В моем случае эта проблема была решена после проекта синхронизации с файлами gradle. Это может кому-то помочь.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.