Android failed to read key from keystore

Android Studio: не удается восстановить ключ

я обыскал сайте StackOverflow, но я просто хотел убедиться.

я вытер свой ноутбук некоторое время назад и скопировал все свои файлы. У меня есть андроид.файл jks скопирован, и он вернулся на место. Когда я пытаюсь создать подписанный APK, это дает мне ту же самую страшную ошибку, которую все получают:

У меня есть мой android.jks, пароль ключа, пароль хранилища ключей. Все правильно. Что я упускаю? Я скопировал все свои файлы, так что если есть мне нужен конкретный файл, я мог бы его найти, но я понятия не имею, что делать.

Если я не понимаю, пожалуйста, попросите меня уточнить. Спасибо!

4 ответов

Я не удивлен, что это на работе, но вот что я сделал для тех, кто наткнется на этот пост.

Как я уже сказал, все мои файлы были заархивированы. я восстановил android.файл jks из старой резервной копии. Затем я открыл окно терминала и набрал следующее:

хранилище ключей и пароли ключей должны быть одинаковыми! это исправило мою проблему, и я надеюсь, что это поможет вам тоже.

[обновление: это больше не работает в Android studio 3.0 и выше]

я столкнулся с подобной проблемой, и ни одно из решений не сработало после потери 3 часов в Интернете, я решил копать глубоко.

вот как я решил это: Ошибка «не удается восстановить ключ» для меня была потому, что мой «Keystore пароль» был правильным но » пароль ключа » (псевдонима ключа) был неправильным. Я был уверен, что оба пароля были одинаковыми, но к моему ужасу они не были, и я не знал, какой был второй пароль. Поскольку я уже подписал APK, прежде чем я проверил файл журнала, который можно найти:

откройте файлы журнала с даты подписания apk и найдите следующие записи:

и вы увидите пароли в виде обычного текста. Это даже сработает, если вы забудете пароли.

Если это может помочь кому-либо-проблема в моем случае заключалась в том, что «пароль хранилища ключей» и «пароль ключа» были неправильными.

Читайте также:  Как увидеть скрытые файлы андроид

Мне посчастливилось проверить в Android Studio вкладку структура проекта/подпись и найти пароль ключа и пароль хранилища, перечисленные в обычном тексте. Я думал, они такие же, как и я, но это не так.—1—>

Источник

Android Studio: не удается восстановить ключ

Некоторое время я искал StackOverflow, но я просто хотел убедиться .

Некоторое время назад я протер свой ноутбук и сделал резервную копию всех своих файлов. У меня есть резервная копия файла android.jks, и он снова на месте. Когда я пытаюсь сгенерировать подписанный APK, это выдает ту же ужасную ошибку, которую получают все:

У меня есть android.jks, пароль ключа, пароль хранилища ключей. Все правильно. Что мне не хватает? Я сделал резервную копию всех своих файлов, поэтому, если есть конкретный файл, который мне нужен, я мог бы его найти, но я не знаю, что делать .

Если я не понимаю, пожалуйста, попросите меня уточнить. Благодарность!

Я не удивлен, что это не получило никакой поддержки, но вот что я сделал для всех, кто наткнется на этот пост.

Как я уже сказал, все мои файлы были скопированы. Я восстановил файл android.jks из более старой резервной копии. Затем я открыл окно терминала и ввел следующее:

Пароли хранилища и ключа должны совпадать! Это устранило мою проблему, и я надеюсь, что это поможет и вам.

[Обновление: это больше не работает в Android Studio 3.0 и выше]

Я столкнулся с аналогичной проблемой, и ни одно из решений не помогло после того, как потратил 3 часа в Интернете, я решил покопаться.

Вот как я решил это: ошибка «Невозможно восстановить ключ» для меня возникла из-за того, что мой «пароль хранилища ключей» был правильным, но «ключевой пароль» (псевдонима ключа) был неправильным . Я был почти уверен, что оба пароля были одинаковыми, но, к моему ужасу, это не так, и я не знал, какой был второй пароль. Поскольку я уже подписал APK, прежде чем проверить файл журнала, который можно найти:

  • C: \ Users \ ваше_имя_пользователя \ .AndroidStudio2.1 \ system \ log \

Откройте файлы журнала с даты, когда вы подписали apk, и найдите следующие записи:

И вы найдете пароли в виде простого текста. Это сработает даже, если вы забудете пароли.

Источник

how to solve invalid keystore format error in android studio 2.2. #7

Comments

palashmandokhot commented Apr 24, 2017

**here is error report———>
error:Error:java.lang.RuntimeException:

how to solve this three errors. **
here is gradle console message————>

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ‘:app:packageRelease’.

com.android.ide.common.signing.KeytoolException: Failed to read key palash from store «D:\MyApplication3.idea\workspace.xml»: Invalid keystore format

Try:
Run with —info or —debug option to get more log output.

Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ‘:app:packageRelease’.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:66)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:153)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:150)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99)
at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:46)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:58)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: java.lang.RuntimeException: com.android.ide.common.signing.KeytoolException: Failed to read key palash from store «D:\MyApplication3.idea\workspace.xml»: Invalid keystore format
at com.android.build.gradle.tasks.PackageAndroidArtifact.doTask(PackageAndroidArtifact.java:469)
at com.android.build.gradle.tasks.PackageAndroidArtifact.doFullTaskAction(PackageAndroidArtifact.java:321)
at com.android.build.gradle.tasks.PackageApplication.doFullTaskAction(PackageApplication.java:75)
at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:88)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:245)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:221)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:232)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
. 70 more
Caused by: com.android.ide.common.signing.KeytoolException: Failed to read key palash from store «D:\MyApplication3.idea\workspace.xml»: Invalid keystore format
at com.android.ide.common.signing.KeystoreHelper.getCertificateInfo(KeystoreHelper.java:212)
at com.android.build.gradle.tasks.PackageAndroidArtifact.doTask(PackageAndroidArtifact.java:431)
. 80 more
Caused by: java.io.IOException: Invalid keystore format
at com.android.ide.common.signing.KeystoreHelper.getCertificateInfo(KeystoreHelper.java:190)
. 81 more

Читайте также:  Андроид с двумя симкой

Total time: 1 mins 32.136 secs
**

The text was updated successfully, but these errors were encountered:

Источник

Android keystore with incorrect password! #1394

Comments

ramadis commented Feb 7, 2018 •

I downloaded my android keystore via exp fetch:android:keystore and the console printed out the necessary credentials:

However, when the signing system keeps saying the password is incorrect. I have a few doubts.

  1. Is the alias the one printed by exp or should I decode it in base64 (Since it is a base64 encoded string)?
  2. The password seems to be incorrect. Which one should I use, is it encrypted, encoded, or how can I access it?

Thank you very much!

The text was updated successfully, but these errors were encountered:

anp commented Feb 8, 2018

Hi! Can you tell me how you’re testing this?

ramadis commented Feb 8, 2018

@anp Through the most painful and slow process: I’m rebuilding the apk through expo system, uploading the downloaded keystore and trying different parameters for alias/key pass/keystore pass

anp commented Feb 8, 2018

Where are you uploading the keystore? Google Play?

anp commented Feb 8, 2018

Also, are you trying to upload an app that was already published once without Expo?

ramadis commented Feb 8, 2018

@anp To the second question: No, the app was only published via expo. About the keystore: When choosing to build with android through exp build:android the console prompts to choose between using expo credentials and using my own keystore. Since the first option wasn’t working, I chose to retrieve the keystore using exp fetch:android:keystore and go with the second option, using the credentials given by the console.

Читайте также:  Системы ввода вывода андроид

This is where I am right now. When signing with the credentials given out by exp , the sigining system keeps saying Incorrect password .

anp commented Feb 8, 2018

Hm, I’m sorry, that sounds like a problem. Can you paste the output of trying to upload the keystore?

ramadis commented Feb 8, 2018

@anp Well, the only significative lines are these:

Not sure if theres much information there anyway. The main issue is, why is it failing to sign the apk, given that I put in the same credentials that exp printed out in the console when I fetched the keystore?

anp commented Feb 9, 2018

What process is outputting these lines?

ramadis commented Feb 9, 2018

@anp These lines are the ones outputted by the expo building system. The error happens when the jarsigner is not able to use the keystore to sign the apk.

anp commented Feb 10, 2018

Can you paste the build log URL for this build?

ramadis commented Feb 10, 2018

This is one of the many builds with the incorrect password issue: https://expo.io/builds/fb4f64f1-0204-4d2b-9c26-75a3e7cfbef5

ramadis commented Feb 15, 2018

@anp any updates on the issue?

anp commented Feb 16, 2018

Hi! Sorry about that. I’ve pinged a couple of people internally to take a look at this build. Just to confirm I’m understanding the order correctly:

  1. you ran a build for a project other than calma, and let Expo generate the keystore
  2. in the project from 1, you ran exp fetch:android:keystore and saved the output
  3. in calma, you uploaded the keystore with the credentials from 2 and saw this behavior happen

Can you try the following?

  1. install Java on your computer if you haven’t already, and make sure you have the keytool command line program available
  2. do number 2 from above again, and re-fetch the keystore and credentials from your other project
  3. run keytool -keypasswd -keystore -alias -storepass -keypass -new , substituting the values in angle brackets as appropriate
  4. if that fails, can you try running a build for your other project and posting the build logs for that? if that succeeds, can you try running exp build:android -c in calma, and upload the keystore file you redownloaded?

It would be great if you could post back and let me know whether my understanding of what you’ve tried is correct, and what happened when you tried each of the steps you suggested. Thanks!

Источник

Оцените статью