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


94

Я шукав 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

Відповіді:


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
Дякую! Як ви дізналися, що паролі повинні бути однаковими? Я почав отримувати цю помилку сьогодні. До цього часу все працювало добре з двома різними паролями.
Alen Siljak

6
Мої паролі однакові, і я все ще отримую цю помилку. Я зміг підписати попередню версію тим же ключем. Що тепер мені робити?
Тушар Гогна

1
Я стикався з тим самим питанням. Позавчора я успішно створив підписаний файл .apk, а сьогодні знову та сама проблема. Чи може хтось мати постійне рішення!
Нео,

5
Це дає цю помилку і зараз у моєму випадку: "Помилка keytool: java.security.UnrecoverableKeyException: Не вдається відновити ключ"
0xAliHn

2
Для мене теж та сама проблема. виконавши перший рядок, він запитує пароль. Я даю це, але тоді там написано "помилка keytool ... магазин ключів був підроблений або пароль неправильний"
Аммар Бухарі

64

[Оновлення: це більше не працює в Android Studio 3.0 і новіших версіях]

Я зіткнувся з подібною проблемою, і жодне з рішень не працювало, витративши 3 години в Інтернеті, я вирішив глибоко копати.

Ось як я це вирішив: Помилка "Не вдається відновити ключ" для мене була тому, що мій " Пароль ключа зберігання " був правильним, але "Пароль ключа" (псевдоніма ключа) був неправильним . Я був майже впевнений, що обидва паролі однакові, але, на моє розчарування, вони не були, і я не знав, що таке другий пароль. Оскільки я вже підписав файл .apk, перш ніж перевірити файл журналу, який можна знайти:

  • C: \ Users \ your_username \ .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
ТАК! НАРЕШТІ! Мій пароль знаходився у файлі "idea" у папці, яку ви згадали. Я навіть спробував використати зломщик паролів, але він дав мені псевдонім, і я хоч це був у магазині ключів, але це не так.
Джордж

Дякую! Я використовував те, master passwordщо вводив під час підписання apk, але мені просто потрібно було повторити key password.
JCarlosR

Я ніколи не бачив файл журналу. Перевірка файлів журналів дає мені дуже сильний підказку. Дякую.
hata

7
Це працює для AndroidStudio3.0? Я бачу свої паролі як *********.
TheLearner

2
Команда студії @Androidcoder Android виправила цю лазівку в останніх версіях.
Build3r

24

Якщо це може комусь допомогти - проблема в моєму випадку полягала в тому, що "Пароль магазину ключів" та "Пароль ключа" були неправильними.


14

Я спробував усі подані пропозиції у відповідях та коментарях :(

Пароль мого ключа та пароль сховища ключів абсолютно однакові. Використання android studio 3.4

У мене спрацювало примусове вихід із Android Studio, запуск знову, очищення та відновлення проекту, а потім генерація підписаного apk. всі конфігури точно однакові, але цього разу це спрацювало


3
Я очистив і відновив проект, і тоді він працював нормально. +1 вгору
sanjeeb

1
Це спрацювало для мене. Це не крута "особливість" для IDE, щоб заплутати управління такою важливою інформацією.
Марк-Андре Вейбезан

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

9

[Android Studio 3.3] Я отримав помилку "не вдається відновити ключ" під час створення підписаного файлу .apk. Я зміг перевірити в старому idea.log правильність мого пароля: сховище ключів та паролі ключів були однаковими та правильними.

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

keytool -keypasswd -alias MYKEY -keystore KEYSTORE

Здається, більше неможливо мати однакові паролі для магазину ключів та ключів. Коли я спробував, інструмент клавіш дав мені помилку. Після встановлення іншого пароля для ключа Android Studio створила підписаний файл .apk.

Можливо, у попередніх версіях Android Studio паролі мали бути однаковими - зараз це може бути навпаки.


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

Між відповіддю @ Build3r і цією, я зміг встановити для обох паролів різні допустимі значення та успішно підписати свій додаток. Дякую, хлопці!
Пітер Глюк,

3

Це може комусь допомогти.

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

Потім під час створення підписаного apk я ввів ці облікові дані, але не вдалося.

Я розмістив файл jks у папці програми. Я видалив його звідти і створив окрему папку в кореневій папці проекту Android і розмістив там файл jks .

Потім я спробував очистити, відновити проект, а потім перезапустити андроїд-студію. Нарешті він побудував підписаний apk: D


2

Ця проблема виникає лише тоді, коли ваш пароль ключа або пароль сховища ключів не відповідає.


2

Мої паролі були однаковими, і все-таки виникла ця помилка. Очищення, перебудова та перезапуск студії Android для мене не працювали. Єдиним рішенням, яке працювало для мене, було переміщення файлу keystore.jks у нове місце. Сподіваюся, це допомагає.


1

Я щойно видалив розділ SignConfigs з мого файлу Gradle. Потім відбудував проект, і він знову запрацював.


0

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


0

Якщо у вас запущено eclipse, спробуйте вимкнути його та створити підписаний apk знову.

У моєму випадку я перевірив, що всі паролі правильні, і навіть створив нове сховище ключів зі студії Android. Це все одно не спрацювало, але після того, як я вимкнув запущене eclipse, все просто спрацювало, зі старим сховищем ключів, яке я використовував, або з новоствореним.


0

Я створив файл свого підпису раніше, коли його вперше створив. Коли я отримав цю помилку, я використав її знову. Ви можете використовувати його, якщо у вас є резервна копія. Я думаю, ми зламали речі ще до того, як вони це помітять.


0

Я стикався з тією ж проблемою. У моєму випадку цю проблему вирішено після проекту синхронізації з файлами gradle. Це може комусь допомогти.


0

Я просто видалив .imlфайл зі свого проекту . Потім переробив проект, і він запрацював ще раз.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.