Przez jakiś czas przeszukiwałem StackOverflow, ale chciałem się tylko upewnić ...
Jakiś czas temu wyczyściłem laptopa i utworzyłem kopię zapasową wszystkich plików. Mam kopię zapasową mojego pliku android.jks i jest on z powrotem na miejscu. Kiedy próbuję wygenerować podpisany plik APK, powoduje to ten sam przerażający błąd, który wszyscy otrzymują:
Error:Execution failed for task ':app:packageRelease'.
> Failed to read key conjugationappkey from store
"/Users/wasimsandhu/android.jks": Cannot recover key
Mam swój android.jks, hasło klucza, hasło magazynu kluczy. Wszystko się zgadza. czego mi brakuje? Utworzyłem kopię zapasową wszystkich swoich plików, więc jeśli jest potrzebny konkretny plik, mogłem go znaleźć, ale nie mam pojęcia, co zrobić ...
Jeśli nie mam sensu, poproś mnie o wyjaśnienie. Dzięki!
android
android-keystore
wasimsandhu
źródło
źródło
Odpowiedzi:
Nie dziwię się, że to nie zyskało żadnej przyczepności, ale oto, co zrobiłem dla każdego, kto natknie się na ten post.
Jak powiedziałem, zarchiwizowano wszystkie moje pliki. Przywróciłem plik android.jks ze starszej kopii zapasowej. Następnie otworzyłem okno terminala i wpisałem:
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]
Magazyn kluczy i hasła kluczy muszą być takie same! To rozwiązało mój problem i mam nadzieję, że Tobie też pomoże.
źródło
[Aktualizacja: to już nie działa w Android Studio 3.0 i nowszych wersjach]
Zmierzyłem się z podobnym problemem i żadne z rozwiązań nie zadziałało po zmarnowaniu 3 godzin w Internecie, postanowiłem kopać głęboko.
Oto, jak go rozwiązałem: Błąd „Nie można odzyskać klucza” wynikał z tego, że moje „Hasło magazynu kluczy” było poprawne, ale „Hasło klucza” (aliasu klucza) było nieprawidłowe . Byłem prawie pewien, że oba hasła są takie same, ale ku mojemu przerażeniu nie były i nie wiedziałem, jakie było drugie hasło. Ponieważ podpisałem już pakiet APK, zanim sprawdziłem plik dziennika, który można znaleźć:
Otwórz pliki dziennika z daty podpisania apk i poszukaj następujących wpisów:
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***,
Hasła znajdziesz w postaci zwykłego tekstu. To zadziała nawet, jeśli zapomnisz hasła.
źródło
master password
że wszedłem po podpisaniu apk, ale ja po prostu potrzebne, aby powtórzyćkey password
.Jeśli to komukolwiek może pomóc - problem w moim przypadku polegał na tym, że „Hasło magazynu kluczy” i „Hasło klucza” były nieprawidłowe.
źródło
Wypróbowałem wszystkie podane sugestie w odpowiedziach i komentarzach :(
Moje hasło klucza i hasło do magazynu kluczy są dokładnie takie same. Korzystanie z Android Studio 3.4
Udało mi się wymusić zamknięcie Android Studio, zacząć od nowa, wyczyścić i przebudować projekt, a następnie wygenerować podpisany apk. wszystkie konfiguracje są dokładnie takie same, ale tym razem zadziałało
źródło
[Android Studio 3.3] Otrzymałem błąd „nie można odzyskać klucza” podczas generowania podpisanego pliku APK. Udało mi się sprawdzić w starszym logu idea.log, czy moje hasło jest poprawne: Hasła Key Store i Key były identyczne i poprawne.
Aktualizacja hasła klucza w terminalu:
keytool -keypasswd -alias MYKEY -keystore KEYSTORE
Wydaje się, że nie jest już możliwe posiadanie identycznych haseł do magazynu kluczy i klucza. Keytool dał mi błąd, kiedy próbowałem. Po ustawieniu innego hasła dla klucza, Android Studio wygenerowało podpisany plik APK.
Być może w poprzednich wersjach Android Studio hasła musiały być identyczne - teraz może być odwrotnie.
źródło
To może komuś pomóc.
Kilka dni wcześniej utworzyłem kopię zapasową mojego projektu Androida na gitlab, a następnie zainstalowałem system Windows 10. Następnie sklonowałem go. Znałem dokładnie alias klucza i oba hasła.
Następnie podczas generowania podpisanego apk wprowadziłem te poświadczenia, ale nie udało mi się.
Umieściłem plik jks w folderze aplikacji. Usunąłem go stamtąd i utworzyłem oddzielny folder w folderze głównym projektu android i umieściłem tam plik jks .
Następnie próbowałem wyczyścić, przebudować projekt, a następnie ponownie uruchomić studio Android. W końcu zbudował podpisany apk: D
źródło
Ten problem występuje tylko w przypadku nieprawidłowego dopasowania hasła klucza lub hasła magazynu kluczy.
źródło
Moje hasła były takie same i nadal wyświetlał ten błąd. Wyczyść, przebuduj i zrestartuj Android Studio nie zadziałało. Jedynym rozwiązaniem, które zadziałało, było przeniesienie pliku keystore.jks do nowej lokalizacji. Mam nadzieję że to pomoże.
źródło
Właśnie usunąłem sekcję signingConfigs z pliku Gradle aplikacji. Następnie przebudowałem projekt i znów zadziałał.
źródło
Miałem szczęście, że sprawdziłem w Android Studio zakładkę Struktura projektu / Podpisywanie i znalazłem hasło klucza i hasło do przechowywania podane w postaci zwykłego tekstu. Myślałem, że są tacy sami jak inni, ale tak nie było.
źródło
Jeśli masz uruchomione eclipse, spróbuj je wyłączyć i ponownie wygenerować podpisany apk.
W moim przypadku sprawdziłem, czy wszystkie hasła są poprawne i nawet wygenerowałem nowy magazyn kluczy ze studia Android. Nadal nie działało, ale po wyłączeniu uruchomionego zaćmienia wszystko po prostu działało, ze starym magazynem kluczy, z którego korzystałem, lub z nowo wygenerowanym.
źródło
Spakowałem plik podpisu już wcześniej, kiedy go utworzyłem. Kiedy otrzymałem ten błąd, użyłem go ponownie. Możesz go użyć, jeśli masz kopię zapasową. Myślę, że zepsuliśmy rzeczy, zanim oni to zauważą.
źródło
Miałem ten sam problem. W moim przypadku po zsynchronizowaniu projektu z plikami gradle rozwiązano ten problem. To może komuś pomóc.
źródło
Po prostu usunąłem
.iml
plik z mojego projektu . Potem przebudowałem projekt i znów zadziałał.źródło