Android Studio: không thể khôi phục khóa


94

Tôi đã tìm kiếm StackOverflow một thời gian, nhưng tôi chỉ muốn đảm bảo rằng ...

Tôi đã xóa máy tính xách tay của mình một lúc trước và sao lưu tất cả các tệp của tôi. Tôi đã sao lưu tệp android.jks của mình và nó đã trở lại vị trí cũ. Khi tôi cố gắng tạo APK đã ký, nó mang lại cho tôi một lỗi đáng sợ mà mọi người đều gặp phải:

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

Tôi có android.jks, mật khẩu khóa, mật khẩu kho khóa. Mọi thứ đều chính xác. Tôi đang thiếu gì? Tôi đã sao lưu tất cả các tệp của mình, vì vậy nếu có tệp cụ thể nào tôi cần, tôi có thể tìm thấy nó, nhưng tôi không biết phải làm gì ...

Nếu tôi không hiểu, vui lòng yêu cầu tôi làm rõ. Cảm ơn!


2
Nếu bạn đã sử dụng ký tự & hoặc @ trong mật khẩu kho khóa của mình, thì đừng cuộn xuống phần câu trả lời, hãy chuyển đến liên kết này để biết câu trả lời của sharma.
meyasir

Câu trả lời:


116

Tôi không ngạc nhiên vì điều này không đạt được bất kỳ lực kéo nào, nhưng đây là những gì tôi đã làm cho bất kỳ ai tình cờ gặp bài đăng này.

Như tôi đã nói, tất cả các tệp của tôi đã được sao lưu. Tôi đã khôi phục tệp android.jks từ bản sao lưu cũ hơn. Sau đó, tôi mở cửa sổ Terminal và nhập vào như sau:

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]

Kho khóa và mật khẩu khóa phải giống nhau! Điều này đã khắc phục sự cố của tôi và tôi hy vọng nó cũng giúp bạn.


5
Cảm ơn bạn! Làm thế nào bạn phát hiện ra rằng các mật khẩu phải giống nhau? Tôi bắt đầu nhận được lỗi này ngày hôm nay. Cho đến bây giờ mọi thứ hoạt động tốt với hai mật khẩu khác nhau.
Alen Siljak

6
Mật khẩu của tôi giống nhau và tôi vẫn gặp lỗi này. Tôi đã có thể ký phiên bản trước bằng cùng một khóa. Bây giờ tôi phải làm thế nào?
Tushar Gogna

1
Tôi đã phải đối mặt với cùng một vấn đề. Ngày hôm trước, tôi đã tạo thành công APK đã ký và hôm nay lại gặp sự cố tương tự. Bất kỳ ai có thể có một giải pháp vĩnh viễn!
Neo

5
Nó đưa ra lỗi này vẫn bây giờ trong trường hợp của tôi: "lỗi keytool: java.security.UnrecoverableKeyException: Không thể phục hồi quan trọng"
0xAliHn

2
Đối với tôi cũng vậy, cùng một vấn đề. sau khi thực hiện dòng đầu tiên, nó sẽ yêu cầu nhập mật khẩu. Tôi cung cấp cho nó nhưng sau đó nó nói "lỗi keytool ... keystore được giả mạo hoặc mật khẩu không chính xác"
Ammar Bukhari

64

[Cập nhật: Tính năng này không còn hoạt động trong Android studio 3.0 trở lên]

Tôi phải đối mặt với vấn đề tương tự và không có giải pháp nào hoạt động sau khi lãng phí 3 giờ trên Internet, tôi quyết định đào sâu.

Đây là cách tôi đã giải quyết nó: Lỗi "Không thể khôi phục khóa" đối với tôi là do "Mật khẩu Kho khóa" của tôi đúng nhưng "Mật khẩu khóa" (của bí danh khóa) không chính xác . Tôi khá chắc chắn rằng cả hai mật khẩu đều giống nhau nhưng với sự thất vọng của tôi là chúng không giống nhau và tôi không biết mật khẩu thứ hai là gì. Vì tôi đã ký một APK trước khi kiểm tra tệp nhật ký có thể tìm thấy:

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

Mở tệp nhật ký kể từ ngày bạn đã ký gói ứng dụng và tìm kiếm các mục sau:

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

Và bạn sẽ tìm thấy mật khẩu ở dạng văn bản thuần túy. Điều này thậm chí sẽ hoạt động nếu bạn quên mật khẩu.


3
ĐÚNG! CUỐI CÙNG! Mật khẩu của tôi nằm trong tệp "ý tưởng" bên trong thư mục bạn đã đề cập. Tôi thậm chí đã thử sử dụng một trình bẻ khóa mật khẩu nhưng nó đã cho tôi thẻ Bí danh và tôi mặc dù đó là cửa hàng khóa, nhưng không phải vậy.
George

Cảm ơn! Tôi đang sử dụng master passwordmà tôi đã nhập khi ký apk, nhưng tôi chỉ cần lặp lại key password.
JCarlosR

Tôi chưa bao giờ nhìn thấy một tệp nhật ký. Để kiểm tra các tệp nhật ký cung cấp cho tôi một manh mối rất mạnh. Cảm ơn bạn.
hata

7
Điều này có hoạt động cho AndroidStudio3.0 không? Tôi thấy mật khẩu của mình là *********.
TheLearner

2
@Androidcoder Nhóm studio Android đã khắc phục lỗ hổng này trong các phiên bản gần đây.
Build3r 19/02/19

24

Nếu nó có thể giúp được bất kỳ ai - vấn đề trong trường hợp của tôi là "Mật khẩu kho khóa" và "Mật khẩu khóa" không chính xác.


14

Tôi đã thử tất cả các đề xuất được đưa ra trong câu trả lời và nhận xét :(

Mật khẩu khóa và mật khẩu kho khóa của tôi hoàn toàn giống nhau. Sử dụng android studio 3.4

Điều hiệu quả đối với tôi là buộc thoát khỏi Android Studio, bắt đầu lại, dọn dẹp và xây dựng lại dự án và sau đó tạo apk đã ký. tất cả configs giống hệt nhau nhưng nó đã làm việc thời gian này


3
Tôi đã làm sạch và xây dựng lại dự án và sau đó nó hoạt động tốt. +1 lên
sanjeeb 30-08-19

1
Điều này đã làm việc cho tôi. Không phải là một "tính năng" thú vị cho một IDE để làm rối tung việc quản lý thông tin quan trọng như vậy.
Marc-André Weibezahn

Đã xác nhận trong Android Studio 3.6.2 PS I love you
bjm904

9

[Android Studio 3.3] Tôi gặp lỗi 'không thể khôi phục khóa' khi tạo APK đã ký. Tôi đã có thể kiểm tra trong một idea.log cũ về tính chính xác của mật khẩu của tôi: Key Store và mật khẩu chính giống hệt nhau và chính xác.

Cập nhật mật khẩu khóa trong thiết bị đầu cuối:

keytool -keypasswd -alias MYKEY -keystore KEYSTORE

Dường như không còn có thể có mật khẩu giống hệt nhau cho kho khóa và khóa. Keytool đã báo lỗi cho tôi khi tôi thử. Sau khi đặt mật khẩu khác cho khóa, Android Studio đã tạo APK đã ký.

Có thể, trong các phiên bản Android Studio trước đây, mật khẩu phải giống hệt nhau - bây giờ có thể ngược lại.


Tôi đã cập nhật ứng dụng của mình 2 tuần trước và hôm nay sẽ không hoạt động. Tôi sử dụng điều này để thay đổi mật khẩu giống nhau và cập nhật Android Studio, bây giờ tôi đã bán lại phiên bản mới.
Alejandro Cumpa

Giữa câu trả lời của @ Build3r và câu trả lời này, tôi đã có thể đặt cả hai mật khẩu thành các giá trị khác nhau, được chấp nhận và ký thành công ứng dụng của mình. Cảm ơn các bạn!
Peter Gluck

3

Nó có thể giúp ai đó.

Vài ngày trước khi tôi sao lưu dự án Android của mình trên gitlab và sau đó cài đặt windows 10. Sau đó, tôi đã sao chép nó. Tôi biết chính xác bí danh khóa và cả mật khẩu.

Sau đó, trong khi tạo apk đã ký, tôi đã nhập các thông tin đăng nhập đó nhưng không thành công.

Tôi đã đặt tệp jks trong thư mục ứng dụng. Tôi đã xóa nó khỏi đó và tạo thư mục riêng trong thư mục gốc của dự án androidđặt tệp jks ở đó.

Sau đó, tôi đã thử dọn dẹp, xây dựng lại dự án và sau đó khởi động lại studio android. Cuối cùng nó đã xây dựng apk đã ký: D


2

Sự cố này chỉ xảy ra khi mật khẩu khóa hoặc mật khẩu kho khóa của bạn khớp sai.


2

Mật khẩu của tôi giống nhau và vẫn gặp lỗi này. Tôi không làm sạch, tạo lại và khởi động lại Android studio. Giải pháp duy nhất phù hợp với tôi là di chuyển tệp keystore.jks đến một vị trí mới. Hi vọng điêu nay co ich.


1

Tôi vừa xóa phần SignConfigs khỏi tệp gradle ứng dụng của mình. Sau đó xây dựng lại dự án và nó hoạt động trở lại.


0

Tôi đã rất may mắn khi kiểm tra tab Cấu trúc / Ký dự án trong Android Studio và tìm thấy mật khẩu khóa và mật khẩu lưu trữ được liệt kê dưới dạng văn bản thuần túy. Tôi nghĩ họ giống nhau, nhưng không phải vậy.


0

Nếu bạn đang chạy nhật thực, hãy thử tắt nó và tạo lại apk đã ký.

Trong trường hợp của tôi, tôi đã kiểm tra xem tất cả các mật khẩu đều đúng và thậm chí đã tạo một kho khóa mới từ Android studio. Nó vẫn không hoạt động, nhưng sau khi tôi tắt nhật thực đang chạy, mọi thứ vẫn hoạt động, với kho khóa cũ tôi đã sử dụng hoặc với kho khóa mới được tạo.


0

Tôi đã nén tệp chữ ký của mình trước đây khi tôi tạo nó lần đầu tiên. Khi gặp lỗi này, tôi đã sử dụng lại. Bạn có thể sử dụng nó nếu bạn có bản sao lưu. Tôi nghĩ rằng chúng tôi đã phá vỡ mọi thứ trước khi họ nhận thấy.


0

Tôi đã phải đối mặt với cùng một vấn đề. Trong trường hợp của tôi, Sau khi đồng bộ hóa dự án với các tệp gradle đã giải quyết được vấn đề này. Điều này có thể giúp ai đó.


0

Tôi chỉ cần xóa .imltệp khỏi dự án của mình . Sau đó tu sửa lại dự án và nó hoạt động một lần nữa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.