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

คำตอบ:


116

ฉันไม่แปลกใจเลยที่ไม่ได้รับแรงฉุด แต่นี่คือสิ่งที่ฉันทำเพื่อใครก็ตามที่สะดุดโพสต์นี้

อย่างที่บอกว่าไฟล์ทั้งหมดของฉันได้รับการสำรองข้อมูลแล้ว ฉันกู้คืนไฟล์ android.jks จากข้อมูลสำรองที่เก่ากว่า จากนั้นฉันเปิดหน้าต่าง Terminal และพิมพ์ข้อความต่อไปนี้:

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
รหัสผ่านของฉันเหมือนกันและฉันยังคงได้รับข้อผิดพลาดนี้ ฉันสามารถลงนามเวอร์ชันก่อนหน้าด้วยคีย์เดียวกันได้ ตอนนี้ฉันควรทำอย่างไร
Tushar Gogna

1
ฉันประสบปัญหาเดียวกัน วันก่อนเมื่อวานฉันสร้าง APK ที่ลงชื่อสำเร็จแล้วและวันนี้ก็เกิดปัญหาเดิมอีกครั้ง ใครมีวิธีแก้แบบถาวรได้ไหม!
นีโอ

5
ตอนนี้ทำให้ข้อผิดพลาดนี้ยังคงอยู่ในกรณีของฉัน: "keytool error: java.security.UnrecoverableKeyException: ไม่สามารถกู้คืนคีย์"
0xAliHn

2
สำหรับฉันเช่นกันปัญหาเดียวกัน หลังจากดำเนินการบรรทัดแรกระบบจะถามรหัสผ่าน ฉันให้ แต่แล้วมันขึ้นว่า "keytool error ... keystore was tampered with or password
Ammar Bukhari

64

[อัปเดต: สิ่งนี้ใช้ไม่ได้ใน Android studio 3.0 ขึ้นไปอีกต่อไป]

ฉันประสบปัญหาที่คล้ายกันและไม่มีวิธีแก้ปัญหาใด ๆ หลังจากเสียเวลาไป 3 ชั่วโมงบนอินเทอร์เน็ตฉันตัดสินใจขุดลึก

นี่คือวิธีที่ฉันจะแก้ไขมันได้ข้อผิดพลาด "ไม่สามารถกู้คืนสำคัญ" สำหรับฉันเพราะฉัน"Keystore รหัสผ่าน" ได้ถูกต้องแต่"คีย์รหัสผ่าน" (จากนามแฝงกุญแจ) ไม่ถูกต้อง ฉันค่อนข้างมั่นใจว่ารหัสผ่านทั้งสองเหมือนกัน แต่ที่ฉันตกใจคือมันไม่ใช่และฉันไม่รู้ว่ารหัสผ่านที่สองคืออะไร เนื่องจากฉันได้ลง 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" ภายในโฟลเดอร์ที่คุณกล่าวถึง ฉันลองใช้แครกเกอร์รหัสผ่าน แต่มันให้ Alias ​​pass และฉันถึงแม้ว่ามันจะเป็นของที่เก็บคีย์ แต่มันก็ไม่ใช่
George

ขอบคุณ! ฉันใช้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
@Androidcoder ทีมสตูดิโอ Android แก้ไขช่องโหว่นี้ในเวอร์ชันล่าสุด
Build3r

24

หากสามารถช่วยใครได้ - ปัญหาในกรณีของฉันคือ "รหัสผ่านที่เก็บคีย์" และ "รหัสผ่านคีย์" ไม่ถูกต้อง


14

ฉันลองใช้คำแนะนำทั้งหมดในคำตอบและความคิดเห็น :(

รหัสผ่านคีย์และรหัสผ่านที่เก็บคีย์ของฉันเหมือนกันทุกประการ ใช้ android studio 3.4.2

สิ่งที่ได้ผลสำหรับฉันคือบังคับให้ออกจาก Android Studio เริ่มใหม่อีกครั้งล้างและสร้างโครงการใหม่จากนั้นสร้าง apk ที่ลงชื่อ การกำหนดค่าทั้งหมดเหมือนกัน แต่ใช้งานได้ในครั้งนี้


3
ฉันทำความสะอาดและสร้างโครงการขึ้นมาใหม่จากนั้นก็ใช้งานได้ดี +1 up
sanjeeb

1
สิ่งนี้ได้ผลสำหรับฉัน ไม่ใช่ "คุณลักษณะ" ที่ยอดเยี่ยมสำหรับ IDE ที่จะทำให้การจัดการข้อมูลสำคัญเช่นนั้นยุ่งเหยิง
Marc-André Weibezahn

ยืนยันแล้วใน Android Studio 3.6.2 PS I love you
bjm904

9

[Android Studio 3.3] ฉันได้รับข้อผิดพลาด "ไม่สามารถกู้คืนคีย์" ในการสร้าง APK ที่ลงชื่อ ผมสามารถที่จะตรวจสอบใน idea.log เก่าความถูกต้องของรหัสผ่านของฉัน: คีย์ Store และรหัสผ่านที่สำคัญอยู่เหมือนกันและถูกต้อง

การอัปเดตรหัสผ่านคีย์ในเทอร์มินัล:

keytool -keypasswd -alias MYKEY -keystore KEYSTORE

ดูเหมือนว่าจะไม่มีรหัสผ่านที่เหมือนกันสำหรับที่เก็บคีย์และคีย์อีกต่อไป Keytool ทำให้ฉันมีข้อผิดพลาดเมื่อฉันลอง หลังจากตั้งรหัสผ่านอื่นสำหรับคีย์แล้ว Android Studio ก็สร้าง APK ที่มีลายเซ็น

บางทีใน Android Studio เวอร์ชันก่อนหน้ารหัสผ่านจะต้องเหมือนกัน - ตอนนี้อาจจะตรงกันข้าม


ฉันอัปเดตแอปเมื่อ 2 สัปดาห์ที่แล้วและวันนี้ใช้ไม่ได้ ฉันใช้สิ่งนี้เพื่อเปลี่ยนรหัสผ่านให้เหมือนเดิมและอัปเดต Android Studio ตอนนี้ฉันเปิดตัวเวอร์ชันใหม่แล้ว
Alejandro Cumpa

ระหว่างคำตอบของ @ Build3r กับคำตอบนี้ฉันสามารถตั้งรหัสผ่านทั้งสองเป็นค่าที่แตกต่างกันและยอมรับได้และลงชื่อแอปของฉันได้สำเร็จ ขอบคุณเพื่อน!
Peter Gluck

3

มันอาจช่วยใครบางคนได้

หลายวันก่อนฉันสำรองข้อมูลโครงการ android บน gitlab แล้วติดตั้ง windows 10 หลังจากนั้นฉันก็โคลน ฉันรู้นามแฝงสำคัญและรหัสผ่านทั้งสองอย่างตรงกัน

จากนั้นในขณะที่สร้าง apk ที่ลงชื่อฉันป้อนข้อมูลรับรองเหล่านั้น แต่ล้มเหลว

ฉันวางไฟล์ jks ไว้ในโฟลเดอร์แอพ ฉันลบออกจากที่นั่นและสร้างโฟลเดอร์แยกต่างหากในโฟลเดอร์รูทของโครงการ androidและวางไฟล์ jks ไว้ที่นั่น

จากนั้นฉันก็ลองทำความสะอาดสร้างโครงการใหม่แล้วรีสตาร์ท android studio ในที่สุดก็สร้าง apk ที่ลงชื่อ: D


2

ปัญหานี้เกิดขึ้นเฉพาะเมื่อรหัสผ่านคีย์หรือรหัสผ่านที่เก็บคีย์ของคุณไม่ตรงกัน


2

รหัสผ่านของฉันเหมือนกันและยังคงได้รับข้อผิดพลาดนี้ ทำความสะอาดสร้างและรีสตาร์ท Android studio ไม่ได้ผลสำหรับฉัน ทางออกเดียวที่ใช้ได้ผลสำหรับฉันคือการย้ายไฟล์ keystore.jks ไปยังตำแหน่งใหม่ หวังว่านี่จะช่วยได้


1

ฉันเพิ่งลบส่วน SigningConfigs ออกจากไฟล์ Gradle ของแอป จากนั้นสร้างโครงการใหม่และใช้งานได้อีกครั้ง


0

ฉันโชคดีที่ได้ตรวจสอบใน Android Studio ที่แท็บโครงสร้างโครงการ / การลงนามและพบรหัสผ่านหลักและรหัสผ่านที่จัดเก็บอยู่ในข้อความธรรมดา ฉันคิดว่าพวกเขาเหมือนกัน แต่ไม่ใช่


0

หากคุณมี eclipse ทำงานอยู่ให้ลองปิดและสร้าง apk ที่ลงชื่ออีกครั้ง

ในกรณีของฉันฉันตรวจสอบว่ารหัสผ่านทั้งหมดถูกต้องและยังสร้างที่เก็บคีย์ใหม่จาก Android studio มันยังใช้ไม่ได้ แต่หลังจากที่ฉันปิดคราสที่กำลังทำงานทุกอย่างก็ทำงานได้ดีกับที่เก็บคีย์เก่าที่ฉันใช้หรือกับที่เก็บคีย์ที่สร้างขึ้นใหม่


0

ฉันได้ซิปไฟล์ลายเซ็นของฉันมาก่อนเมื่อฉันสร้างมันครั้งแรก เมื่อฉันได้รับข้อผิดพลาดนี้ฉันใช้อีกครั้ง คุณสามารถใช้งานได้หากคุณมีข้อมูลสำรอง ฉันคิดว่าเราทำของพังก่อนที่จะสังเกตเห็น


0

ฉันกำลังเผชิญกับปัญหาเดียวกัน ในกรณีของฉันโครงการหลังจากซิงค์กับไฟล์ gradle สามารถแก้ไขปัญหานี้ได้ สิ่งนี้อาจช่วยใครบางคนได้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.