Android Studio: tidak dapat memulihkan kunci

96

Saya telah mencari StackOverflow untuk sementara waktu, tetapi saya hanya ingin memastikan ...

Saya menghapus laptop saya beberapa waktu lalu, dan mencadangkan semua file saya. Saya telah mencadangkan file android.jks, dan kembali ke tempatnya. Ketika saya mencoba membuat APK bertanda tangan, itu memberi saya kesalahan menakutkan yang sama yang dialami semua orang:

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

Saya memiliki android.jks saya, kata sandi kunci, kata sandi penyimpanan kunci. Semuanya benar. Apa yang saya lewatkan? Saya mencadangkan semua file saya, jadi jika ada file tertentu yang saya perlukan, saya dapat menemukannya, tetapi saya tidak tahu harus berbuat apa ...

Jika saya tidak masuk akal, mohon minta saya untuk mengklarifikasi. Terima kasih!

wasimsandhu
sumber
2
Jika Anda telah menggunakan karakter & atau @ dalam kata sandi keystore Anda, jangan gulir ke bawah ke bagian jawaban, lompat ke tautan ini , untuk jawaban sharma.
meyasir

Jawaban:

116

Saya tidak terkejut ini tidak mendapatkan daya tarik apa pun, tetapi inilah yang saya lakukan untuk siapa saja yang tersandung pada posting ini.

Seperti yang saya katakan, semua file saya sudah di-backup. Saya memulihkan file android.jks dari cadangan yang lebih lama. Kemudian, saya membuka jendela Terminal dan mengetik berikut ini:

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]

Keystore dan kata sandi kunci harus sama! Ini memperbaiki masalah saya, dan saya harap ini membantu Anda juga.

wasimsandhu
sumber
5
Terima kasih! Bagaimana Anda mengetahui bahwa kata sandi harus sama? Saya mulai mendapatkan kesalahan ini hari ini. Sampai sekarang semuanya bekerja dengan baik dengan dua kata sandi yang berbeda.
Alen Siljak
6
Kata sandi saya sama dan saya masih mendapatkan kesalahan ini. Saya bisa menandatangani versi sebelumnya dengan kunci yang sama. Sekarang apa yang harus saya lakukan?
Tushar Gogna
1
Saya telah menghadapi masalah yang sama. Sehari sebelum kemarin saya berhasil membuat APK yang ditandatangani dan hari ini lagi masalah yang sama. Adakah yang bisa mendapatkan solusi permanen!
Neo
5
Ini memberikan kesalahan ini masih dalam kasus saya: "kesalahan keytool: java.security.UnrecoverableKeyException: Tidak dapat memulihkan kunci"
0xAliHn
2
Bagi saya juga, masalah yang sama. setelah menjalankan baris pertama, ia meminta kata sandi. Saya memberikannya tetapi kemudian dikatakan "kesalahan keytool ... keystore telah dirusak atau kata sandi salah"
Ammar Bukhari
65

[Pembaruan: Ini tidak lagi berfungsi di Android studio 3.0 dan lebih tinggi]

Saya menghadapi masalah yang sama dan tidak ada solusi yang berhasil setelah menghabiskan 3 jam di Internet, saya memutuskan untuk menggali lebih dalam.

Inilah cara saya mengatasinya: Kesalahan "Tidak dapat memulihkan kunci" bagi saya adalah karena "Kata sandi Keystore" saya benar tetapi "Kata Sandi Kunci" (dari alias kunci) salah . Saya cukup yakin kedua kata sandi itu sama tetapi yang membuat saya cemas ternyata tidak dan saya tidak tahu apa kata sandi kedua. Karena saya sudah menandatangani APK sebelum saya memeriksa file log yang dapat ditemukan:

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

Buka file log dari tanggal Anda menandatangani apk dan cari entri berikut:

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

Dan Anda akan menemukan kata sandi dalam teks biasa. Ini bahkan akan berfungsi jika Anda lupa kata sandi.

Build3r
sumber
3
IYA! AKHIRNYA! Kata sandi saya ada di file "ide" di dalam folder yang Anda sebutkan. Saya bahkan mencoba menggunakan cracker kata sandi tetapi itu memberi saya izin Alias ​​dan saya pikir itu adalah keystore, tetapi ternyata tidak.
George
Terima kasih! Saya menggunakan master passwordyang saya masukkan saat menandatangani apk, tetapi saya hanya perlu mengulang key password.
JCarlosR
8
Apakah ini berfungsi untuk AndroidStudio3.0? Saya melihat kata sandi saya sebagai *********.
TheLearner
1
File saya mengatakan: -Pandroid.injected.signing.store.password = *********, -Pandroid.injected.signing.key.alias = mykey, -Pandroid.injected.signing.key.password = * ********
Androidcoder
2
Tim @Androidcoder Android studio memperbaiki celah ini di versi terbaru.
Build3r
24

Jika itu dapat membantu siapa pun - masalah dalam kasus saya adalah "Kata sandi penyimpanan kunci" dan "Kata sandi kunci" salah.

MorZa
sumber
15

Saya mencoba semua saran yang diberikan dalam jawaban dan komentar :(

Kata sandi kunci dan kata sandi keystore saya persis sama. Menggunakan android studio 3.4

Apa yang berhasil bagi saya adalah keluar dari Android Studio secara paksa, mulai lagi, bersihkan dan bangun kembali proyek, lalu buat apk yang ditandatangani. semua konfigurasi persis sama tetapi bekerja saat ini

Zeeshan Tufail
sumber
3
Saya membersihkan dan membangun kembali proyek dan kemudian bekerja dengan baik. +1 naik
sanjeeb
1
Ini berhasil untuk saya. Bukan "fitur" yang keren untuk IDE yang mengacaukan pengelolaan informasi penting seperti itu.
Marc-André Weibezahn
Dikonfirmasi di Android Studio 3.6.2 PS I love you
bjm904
9

[Android Studio 3.3] Saya mendapatkan kesalahan 'tidak dapat memulihkan kunci' saat membuat APK yang ditandatangani. Saya mampu memeriksa dalam idea.log tua atas kebenaran password saya: Penyimpanan Kunci dan password Key yang identik dan benar.

Memperbarui kata sandi kunci di terminal:

keytool -keypasswd -alias MYKEY -keystore KEYSTORE

Tampaknya tidak mungkin lagi memiliki sandi yang identik untuk keystore dan kunci. Keytool memberi saya kesalahan, ketika saya mencoba. Setelah menyetel sandi yang berbeda untuk kunci tersebut, Android Studio membuat APK yang ditandatangani.

Mungkin, di versi Android Studio sebelumnya, kata sandi harus identik - sekarang mungkin sebaliknya.

LiebrandApps
sumber
Saya memperbarui aplikasi saya 2 minggu yang lalu, dan hari ini tidak berfungsi. Saya menggunakan ini untuk mengubah kata sandi menjadi sama dan memperbarui Android Studio, sekarang saya merilis kembali versi baru.
Alejandro Cumpa
Antara jawaban @ Build3r dan yang ini, saya dapat mengatur kedua kata sandi ke nilai yang berbeda dan dapat diterima dan berhasil menandatangani aplikasi saya. Terima kasih semuanya!
Peter Gluck
3

Ini dapat membantu seseorang.

Beberapa hari sebelumnya saya membackup proyek android saya di gitlab dan kemudian menginstal windows 10. Setelah itu saya mengkloningnya. Saya tahu alias kunci dan kedua kata sandinya dengan tepat.

Kemudian saat membuat apk yang ditandatangani, saya memasukkan kredensial tersebut tetapi gagal.

Saya telah menempatkan file jks di folder aplikasi. Saya menghapusnya dari sana dan membuat folder terpisah di folder root proyek android dan menempatkan file jks di sana.

Kemudian saya mencoba membersihkan, membangun kembali proyek dan kemudian memulai ulang studio android. Akhirnya itu membangun apk yang ditandatangani: D

Makarand
sumber
2

Masalah ini hanya terjadi jika Kata Sandi Kunci atau Kata Sandi Keystore Anda Salah.

Arjun G
sumber
2

Kata sandi saya sama dan masih mendapatkan kesalahan ini. Membersihkan, membangun kembali, dan memulai ulang Android studio tidak berhasil untuk saya. Satu-satunya solusi yang berhasil untuk saya adalah memindahkan file keystore.jks ke lokasi baru. Semoga ini membantu.

Andrain
sumber
1

Saya baru saja menghapus bagian signConfigs dari file gradle aplikasi saya. Kemudian bangun kembali proyek dan berhasil kembali.

Martin B
sumber
0

Saya mendapat keberuntungan untuk memeriksa di Android Studio tab Struktur Proyek / Penandatanganan, dan menemukan kata sandi kunci dan kata sandi penyimpanan tercantum dalam teks biasa. Saya pikir mereka sama satu sama lain, tetapi ternyata tidak.

saswanb
sumber
0

Jika Anda menjalankan gerhana, coba matikan dan buat apk bertanda tangan lagi.

Dalam kasus saya, saya memeriksa bahwa semua kata sandi sudah benar dan bahkan menghasilkan penyimpanan kunci baru dari studio Android. Itu masih tidak berfungsi, tetapi setelah saya mematikan gerhana yang sedang berjalan, semuanya hanya berfungsi, dengan penyimpanan kunci lama yang saya gunakan atau dengan yang baru dibuat.

RedSght
sumber
0

Saya telah membuat zip file tanda tangan saya sebelumnya saat pertama kali membuatnya. Ketika saya mendapatkan kesalahan ini, saya menggunakannya lagi. Anda dapat menggunakannya jika Anda memiliki cadangan. Saya pikir kita telah merusak sesuatu sebelum mereka menyadarinya.

Mahmut K.
sumber
0

Saya menghadapi masalah yang sama. Dalam kasus saya, Setelah proyek sinkronisasi dengan file gradle menyelesaikan masalah ini. Ini mungkin membantu seseorang.

Vikas Rai
sumber
0

Saya hanya menghapus .imlfile dari proyek saya . Kemudian merombak proyek dan berhasil sekali lagi.

Muhammad Waleed
sumber