ChristianAlbrecht
ChristianAlbrecht

Reputation: 71

How to solve the "Invalid keystore exception"?

I was up to publish my app in the Google Play Store and wanted to do a last check if it works after I generated the signed APK. However, I got the following error.

Any solution?

org.gradle.api.tasks.TaskExecutionException: Execution failed for task
':android:packageRelease'. 

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.lang.Thread.run(Thread.java:745)


Caused by: org.gradle.tooling.BuildException: Failed to read key
shaperecognisingreleasekey from store
  "C:\Users\Albrecht\Documents\Apps\ShapeRecognisingGame\android\release\android-release.apk":
  Invalid keystore format
        at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler$transform$2.invoke(BuildElements.kt:133)
        at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler$transform$2.invoke(BuildElements.kt:110)
        at kotlin.sequences.SequencesKt___SequencesKt$onEach$1.invoke(_Sequences.kt:1260)
        at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:149)
        at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:109)
        at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:133)
        at kotlin.sequences.TransformingSequence$iterator$1.hasNext(Sequences.kt:153)
        at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:633)
        at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:663)
        at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:654)
        at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler.transform(BuildElements.kt:140)
        at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler.into(BuildElements.kt:115)
        at com.android.build.gradle.internal.scope.BuildElementActionScheduler.into(BuildElementActionScheduler.kt:32)
        at com.android.build.gradle.tasks.PackageAndroidArtifact.doFullTaskAction(PackageAndroidArtifact.java:393)
        at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:106)


Caused by: com.android.ide.common.signing.KeytoolException: Failed to
read key shaperecognisingreleasekey from store
  "C:\Users\Albrecht\Documents\Apps\ShapeRecognisingGame\android\release\android-release.apk":
  Invalid keystore format
        at com.android.ide.common.signing.KeystoreHelper.getCertificateInfo(KeystoreHelper.java:212)
        at com.android.build.gradle.internal.packaging.IncrementalPackagerBuilder.withSigning(IncrementalPackagerBuilder.java:161)
        at com.android.build.gradle.tasks.PackageAndroidArtifact.doTask(PackageAndroidArtifact.java:646)
        at com.android.build.gradle.tasks.PackageAndroidArtifact.splitFullAction(PackageAndroidArtifact.java:496)
        at com.android.build.gradle.tasks.PackageAndroidArtifact.lambda$doFullTaskAction$2(PackageAndroidArtifact.java:388)
        at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler$transform$$inlined$forEach$lambda$1.call(BuildElements.kt:121)
        at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler$transform$$inlined$forEach$lambda$1.call(BuildElements.kt:110)
        at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
        at java.util.concurrent.ForkJoinTask.externalAwaitDone(ForkJoinTask.java:326)
        at java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:391)
        at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719)
        at com.android.ide.common.internal.WaitableExecutor.waitForAllTasks(WaitableExecutor.java:215)
        at com.android.build.gradle.internal.scope.BuildElements$ExecutorBasedScheduler.transform(BuildElements.kt:125)



Caused by: java.io.IOException: Invalid keystore format
        at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:658)
        at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:56)
        at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224)
        at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:70)
        at java.security.KeyStore.load(KeyStore.java:1445)
        at com.android.ide.common.signing.KeystoreHelper.getCertificateInfo(KeystoreHelper.java:190)

Upvotes: 1

Views: 4142

Answers (1)

David Wasser
David Wasser

Reputation: 95568

It looks like it is trying to use the APK file as the keystore:

Caused by: org.gradle.tooling.BuildException: Failed to read key shaperecognisingreleasekey from store

"C:\Users\Albrecht\Documents\Apps\ShapeRecognisingGame\android\release\android-release.apk": Invalid keystore format at 

You told your build tool that the APK was the keystore. You need to go back and read the instuctions about how to generate a keystore and make sure that you tell the build tool where your keystore is. Also make absolutely sure that you have backup copies of your keystore and that you know what the password is. If you lose your keystore or you forget your password, you will never be able to update your app on Google Play.

Upvotes: 2

Related Questions