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
키 저장소 암호에 & 또는 @ 문자를 사용한 경우 답변 섹션으로 스크롤하지 말고이 링크 로 이동하여 sharma의 답변을 확인하십시오.
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
내 비밀번호가 동일하지만 여전히이 오류가 발생합니다. 동일한 키로 이전 버전에 서명 할 수있었습니다. 이제 어떻게해야합니까?
Tushar Gogna

1
나는 같은 문제에 직면하고 있습니다. 어제 전날 서명 된 APK를 성공적으로 생성했으며 오늘도 동일한 문제가 발생했습니다. 누구든지 영구적 인 해결책을 가질 수 있습니다!
네오

5
내 경우에도 여전히이 오류가 발생합니다. "keytool 오류 : java.security.UnrecoverableKeyException : 키를 복구 할 수 없습니다"
0xAliHn

2
나에게도 같은 문제입니다. 첫 번째 줄을 실행 한 후 암호를 묻습니다. 나는 그것을 제공하지만, 그것은 "키 도구 오류가 ... 키 스토어가 변경되었거나 암호가 잘못되었습니다"라는
아마르 카리에게

64

[업데이트 : Android 스튜디오 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
예! 드디어! 내 암호는 당신이 언급 한 폴더 안의 "idea"파일에있었습니다. 나는 심지어 암호 크래커를 사용해 보았지만 그것은 나에게 Alias ​​패스를 주었다. 그리고 나는 그것이 키 스토어 였지만 그렇지 않았다.
George

감사! master passwordAPK에 서명 할 때 입력 한 을 사용하고 있었지만 key password.
JCarlosR

로그 파일을 본 적이 없습니다. 로그 파일을 확인하는 것은 나에게 매우 강력한 단서를 제공합니다. 감사합니다.
hata

7
AndroidStudio3.0에서 작동합니까? 내 비밀번호가 *********로 표시됩니다.
TheLearner 2017

2
@Androidcoder Android 스튜디오 팀은 최신 버전에서이 허점을 수정했습니다.
Build3r

24

누구에게나 도움이된다면 제 경우에는 "키 스토어 비밀번호"와 "키 비밀번호"가 틀렸다는 문제가있었습니다.


14

나는 답변과 의견에 주어진 모든 제안을 시도했습니다 :(

내 키 비밀번호와 키 저장소 비밀번호가 정확히 동일합니다. Android Studio 3.4 사용

나를 위해 일한 것은 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를 생성 할 때 'cannot recover key'오류가 발생합니다. 이전 idea.log에서 내 암호의 정확성을 확인할 수있었습니다. 키 저장소와 키 암호 동일하고 정확했습니다.

터미널에서 키 비밀번호 업데이트 :

keytool -keypasswd -alias MYKEY -keystore KEYSTORE

더 이상 키 저장소와 키에 대해 동일한 암호를 가질 수없는 것 같습니다. 시도했을 때 keytool에서 오류가 발생했습니다. 키에 다른 비밀번호를 설정 한 후 Android Studio에서 서명 된 APK를 생성했습니다.

아마도 이전 Android Studio 버전에서는 비밀번호가 동일해야했지만 이제는 그 반대 일 수 있습니다.


2 주 전에 앱을 업데이트했는데 오늘은 작동하지 않습니다. 나는 이것을 사용하여 비밀번호를 동일하게 변경하고 Android Studio를 업데이트했으며 이제 새 버전을 실현했습니다.
Alejandro Cumpa

@ Build3r의 답변과이 답변 사이에 두 암호를 서로 다른 허용 가능한 값으로 설정하고 앱에 성공적으로 서명 할 수있었습니다. 고마워요!
Peter Gluck

3

누군가를 도울 수 있습니다.

며칠 전에 gitlab에 내 안드로이드 프로젝트를 백업 한 다음 Windows 10을 설치했습니다. 그 후 복제했습니다. 키 별칭과 두 암호를 모두 정확히 알고있었습니다.

그런 다음 서명 된 APK를 생성하는 동안 해당 자격 증명을 입력했지만 실패했습니다.

jks 파일을 앱 폴더에 넣었습니다. 나는 거기에서 그것을 제거하고 생성 된 안드로이드 프로젝트의 루트 폴더에 별도의 폴더를 하고 배치 JKS는 파일 이가.

그런 다음 깨끗하고 프로젝트를 다시 빌드 한 다음 Android 스튜디오를 다시 시작했습니다. 마지막으로 서명 된 apk를 빌드했습니다. : D


2

이 문제는 키 암호 또는 키 저장소 암호가 일치하지 않는 경우에만 발생합니다.


2

내 암호가 동일했지만 여전히이 오류가 발생했습니다. Android 스튜디오를 정리하고 다시 빌드하고 다시 시작해도 효과가 없었습니다. 나를 위해 일한 유일한 해결책은 keystore.jks 파일을 새 위치로 이동하는 것입니다. 도움이 되었기를 바랍니다.


1

내 앱 gradle 파일에서 signingConfigs 섹션을 제거했습니다. 그런 다음 프로젝트를 다시 빌드하고 다시 작동했습니다.


0

Android Studio에서 Project Structure / Signing 탭을 확인하고 일반 텍스트로 나열된 키 비밀번호와 저장소 비밀번호를 찾았습니다. 나는 그들이 서로 같다고 생각했지만 그렇지 않았습니다.


0

Eclipse를 실행중인 경우 종료하고 서명 된 APK를 다시 생성하십시오.

제 경우에는 모든 비밀번호가 올바른지 확인하고 Android 스튜디오에서 새 키 저장소를 생성했습니다. 여전히 작동하지 않았지만 실행중인 이클립스를 종료 한 후 내가 사용한 이전 키 저장소 또는 새로 생성 된 키 저장소로 모든 것이 작동했습니다.


0

서명 파일을 처음 만들 때 이전에 압축했습니다. 이 오류가 발생하면 다시 사용했습니다. 백업이 있으면 사용할 수 있습니다. 나는 그들이 알아 차리기 전에 우리가 일을 부수 었다고 생각합니다.


0

나는 같은 문제에 직면했다. 제 경우에는 프로젝트를 gradle 파일과 동기화 한 후이 문제가 해결되었습니다. 이것은 누군가를 도울 수 있습니다.


0

.iml프로젝트 에서 파일을 제거했습니다 . 그런 다음 프로젝트를 리모델링하고 다시 한 번 작동했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.