web-dev-qa-db-ja.com

Android Studioのアプリのビルドは、キーストアが改ざんされていると主張して失敗します

最近、AndroidアプリをEclipseからAndroid Studioに移植しました。アプリケーションをデバッグでき、クライアントがテストできるリリースバージョンを構築することもできました。残念ながら、もうデバッグできません。 Android Studioからアプリを実行しようとすると失敗します。 (下記のlogcatおよびモニター出力を参照してください。)

私の知る限り、私はキーストアを変更していません。 5日前に作成しました。だから、ここからどこに行くのだろうと思います。このアプリは、Android Studioに移植している間、すでに数週間ダウンしており、再び機能させるためにやらなければならないことがたくさんあります。 (クライアントがAndroid 7に一斉に更新されました。承知しました!)

あなたが私に与えることができるどんな助けも謙虚に求めます。ありがとう、レイ。

PS:ウイルス対策や自動バックアップはこれと関係があるのでしょうか?

Logcat出力:

Gradle tasks [:app:assembleDebug]
Error:Java.io.IOException: Keystore was tampered with, or password was incorrect
Error:Java.security.UnrecoverableKeyException: Password verification failed
Error:Execution failed for task ':app:transformDexWithInstantRunDependenciesApkForDebug'.
> com.Android.build.api.transform.TransformException: com.Android.ide.common.signing.KeytoolException: Failed to read key MyAndroidKey from store "I:\Users\Ray\keystores\Android.jks": Keystore was tampered with, or password was incorrect

そして、モニターで私は得ます:

Configuration 'compile' in project ':app' is deprecated. Use 'implementation' instead.
:app:buildInfoDebugLoader
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:checkDebugManifest UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:prepareLintJar UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:createDebugCompatibleScreenManifests UP-TO-DATE
:app:processDebugManifest
:app:splitsDiscoveryTaskDebug UP-TO-DATE
:app:processDebugResources
:app:generateDebugSources
:app:javaPreCompileDebug UP-TO-DATE
:app:compileDebugJavaWithJavac UP-TO-DATE
:app:mergeDebugShaders UP-TO-DATE
:app:compileDebugShaders UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:packageInstantRunResourcesDebug UP-TO-DATE
:app:checkManifestChangesDebug
:app:transformClassesWithExtractJarsForDebug UP-TO-DATE
:app:transformClassesWithInstantRunVerifierForDebug UP-TO-DATE
:app:transformClassesWithDependencyCheckerForDebug UP-TO-DATE
:app:compileDebugNdk NO-SOURCE
:app:mergeDebugJniLibFolders UP-TO-DATE
:app:transformNativeLibsWithMergeJniLibsForDebug UP-TO-DATE
:app:processDebugJavaRes NO-SOURCE
:app:transformResourcesWithMergeJavaResForDebug UP-TO-DATE
:app:transformNativeLibsAndResourcesWithJavaResourcesVerifierForDebug UP-TO-DATE
:app:transformClassesWithInstantRunForDebug UP-TO-DATE
:app:transformClassesEnhancedWithInstantReloadDexForDebug UP-TO-DATE
:app:incrementalDebugTasks UP-TO-DATE
:app:preColdswapDebug
:app:fastDeployDebugExtractor UP-TO-DATE
:app:generateDebugInstantRunAppInfo UP-TO-DATE
:app:transformClassesWithInstantRunSlicerForDebug UP-TO-DATE
:app:transformClassesWithDexBuilderForDebug
:app:transformDexArchiveWithExternalLibsDexMergerForDebug
:app:transformDexArchiveWithDexMergerForDebug
:app:validateSigningDebug
:app:transformDexWithInstantRunDependenciesApkForDebug
Error while generating dependencies split APK
com.Android.ide.common.signing.KeytoolException: Failed to read key MyAndroidKey from store "I:\Users\Ray\keystores\Android.jks": Keystore was tampered with, or password was incorrect
    at com.Android.ide.common.signing.KeystoreHelper.getCertificateInfo(KeystoreHelper.Java:212)
    at com.Android.builder.core.AndroidBuilder.packageCodeSplitApk(AndroidBuilder.Java:1393)
    at com.Android.build.gradle.internal.transforms.InstantRunSplitApkBuilder.generateSplitApk(InstantRunSplitApkBuilder.Java:174)
    at com.Android.build.gradle.internal.transforms.InstantRunDependenciesApkBuilder.transform(InstantRunDependenciesApkBuilder.Java:139)
    at com.Android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.Java:222)
    at com.Android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.Java:218)
    at com.Android.builder.profile.ThreadRecorder.record(ThreadRecorder.Java:102)
    at com.Android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.Java:213)
    at Sun.reflect.GeneratedMethodAccessor180.invoke(Unknown Source)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:498)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.Java:73)
    at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.Java:173)
    at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.Java:134)
    at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.Java:121)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.Java:122)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.Java:336)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.Java:328)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.Java:197)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.Java:107)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.Java:111)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.Java:92)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.Java:70)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.Java:63)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.Java:54)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.Java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.Java:88)
    at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.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:54)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.Java:43)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.Java:34)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.Java:248)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.Java:336)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.Java:328)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.Java:197)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.Java:107)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.Java:241)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.Java:230)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.Java:124)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.Java:80)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.Java:105)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.Java:99)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.Java:625)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.Java:580)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.Java:99)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.Java:63)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.Java:46)
    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: Java.io.IOException: Keystore was tampered with, or password was incorrect
    at Sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.Java:780)
    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)
    ... 51 more
Caused by: Java.security.UnrecoverableKeyException: Password verification failed
    at Sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.Java:778)
    ... 56 more

 FAILED
:app:buildInfoGeneratorDebug

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformDexWithInstantRunDependenciesApkForDebug'.
> com.Android.build.api.transform.TransformException: com.Android.ide.common.signing.KeytoolException: Failed to read key MyAndroidKey from store "I:\Users\Ray\keystores\Android.jks": Keystore was tampered with, or password was incorrect

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

BUILD FAILED in 11s

39 actionable tasks: 11 executed, 28 up-to-date
7
Rben

プロジェクト構造でビルドタイプを編集し、署名設定を削除して、それが問題であるかどうかを確認しました。うまくいったので、APKを再度ビルドできました。今私は新しい問題を抱えています、そこで私は私のapkを私の電話にインストールするように見えないかもしれません。しかし、それは別の問題のように聞こえます。新しい質問を投稿します。

ところで、提案をしてくれたKashan Danishに感謝します。

1
Rben

Android Studio 3.3およびGradle Build Tools 28.0.3でこの問題が発生しました

パスワードを忘れず、キーストアも改ざんされていません。起こったことは、Gitリポジトリの非常に古いブランチに変更したことです。そして、プロジェクトは異なる構造を持っていました。キーストアに違いはありませんでしたが、プロジェクトは大きく異なりました。

これにより、ビルドファイルがキャッシュされるため、ビルドエラーが発生しました。プロジェクトを無効にして再起動して再構築した後、これが問題が発生したときです。エラーは非常に明白であるため、最初はそれがそれだとは思いもしませんでした。

しかし、正しい方向に私を向けたのは、より高度なブランチに戻り、以前と同じビルドの問題があり、上記のようにそれらを解決し、それでもキーのパスワードの問題があったことです。次に、同じキーストアに別の名前で新しいキーを作成しました。以前のブランチに戻ってクリーンアッププロセスを繰り返した後、最新のブランチで作成したキーが見つからなかったことを示す新しいエラーが発生しました。だから、私はGradleが犯人かもしれないと気づかされました。

gradleフォルダーとビルドフォルダーを削除しました無効なキャッシュと再起動 Android Studio。

それが誰かを助けることを願って

20
d4c0d312