
我将Android Studio更新到3.0 Canary 4之后的所有新版本后出现此错误.(我使用的是v3.0,因为它更快,并且不需要为Kotlin插孔.)
看起来构建流程存在问题,它无法为调试版本和发布版本生成或签署我的APK文件.
我也尝试删除我的deBUG.keystore,重新启动AndroIDStudio和系统(!!!),但它没有解决.
这是一个完整的Gradle日志:
FAILURE: Build Failed with an exception.* What went wrong: Execution Failed for task ':chris-app:packageDemoDeBUG'.java.io.IOException: Failed to generate v1 signature* Try: Run with --info or --deBUG option to get more log output.* Exception is: org.gradle.API.tasks.TaskExecutionException: Execution Failed for task ':chris-app:packageDemoDeBUG'. at org.gradle.API.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100) at org.gradle.API.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) at org.gradle.API.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) 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.run(DefaultTaskGraphExecuter.java:243) 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:236) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:225) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processtask(DefaultTaskPlanExecutor.java:124) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access0(DefaultTaskPlanExecutor.java:80) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.execute(DefaultTaskPlanExecutor.java:105) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.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.run(ManagedExecutorImpl.java:46) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) Caused by: org.gradle.tooling.BuildException: java.io.IOException: Failed to generate v1 signature at com.androID.build.gradle.internal.scope.OutputScope.lambda$parallelForEachOutput(OutputScope.java:240) at com.androID.build.gradle.internal.scope.OutputScope.parallelForEachOutput(OutputScope.java:235) at com.androID.build.gradle.internal.scope.OutputScope.parallelForEachOutput(OutputScope.java:196) at com.androID.build.gradle.internal.scope.OutputScope.parallelForEachOutput(OutputScope.java:180) at com.androID.build.gradle.tasks.PackageAndroIDArtifact.doFullTaskAction(PackageAndroIDArtifact.java:466) at com.androID.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:80) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) at org.gradle.API.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:168) 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.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) ... 27 more Caused by: java.lang.RuntimeException: java.io.IOException: Failed to generate v1 signature Caused by: java.io.IOException: Failed to generate v1 signature at com.androID.apkzlib.sign.SigningExtension.onOutputZipReadyForUpdate(SigningExtension.java:297) at com.androID.apkzlib.sign.SigningExtension.access0(SigningExtension.java:55) at com.androID.apkzlib.sign.SigningExtension.lambda$beforeUpdate(SigningExtension.java:175) at com.androID.apkzlib.zip.Zfile.notify(Zfile.java:2099) at com.androID.apkzlib.zip.Zfile.update(Zfile.java:871) at com.androID.apkzlib.zip.Zfile.close(Zfile.java:1161) at com.androID.apkzlib.zfile.ApkZfileCreator.close(ApkZfileCreator.java:172) at com.Google.common.io.Closer.close(Closer.java:216) at com.androID.builder.internal.packaging.IncrementalPackager.close(IncrementalPackager.java:332) at com.androID.build.gradle.tasks.PackageAndroIDArtifact.doTask(PackageAndroIDArtifact.java:698) at com.androID.build.gradle.tasks.PackageAndroIDArtifact.splitFullAction(PackageAndroIDArtifact.java:520) at com.androID.build.gradle.internal.scope.OutputScope.lambda$parallelForEachOutput(OutputScope.java:185) at com.androID.build.gradle.internal.scope.OutputScope.lambda$parallelForEachOutput(OutputScope.java:202) at com.androID.build.gradle.internal.scope.OutputScope.lambda$null(OutputScope.java:224) " at com.androID.apksig.internal.apk.v1.V1SchemeSigner.checkEntrynameValID(V1SchemeSigner.java:406) at com.androID.apksig.internal.apk.v1.V1SchemeSigner.generateManifestfile(V1SchemeSigner.java:373) at com.androID.apksig.internal.apk.v1.V1SchemeSigner.sign(V1SchemeSigner.java:253) at com.androID.apksig.DefaultApkSignerEngine.outputJarEntrIEs(DefaultApkSignerEngine.java:372) at com.androID.apkzlib.sign.SigningExtension.onOutputZipReadyForUpdate(SigningExtension.java:295) ... 13 moreBUILD Failed in 2m 49s解决方法:
在使用gradle assemble –stacktrace命令进行更多调查后,我发现问题与APK压缩过程有关:
Error:org.gradle.tooling.BuildException: Failed to generate v1
signature Error:java.io.IOException: Failed to generate v1 signature
Error:com.androID.apksig.apk.ApkFormatException: Unsupported character
0x0d in ZIP entry name “assets/Icon?”
有一个名为“Icon?”的文件.在我的项目中,这是一个MacOS文件,指示文件夹的图标,里面包含CR,LF字符.
我删除了文件,现在一切正常.
此问题出现在AndroID Studio Canary 4之后的所有版本中,我在此线程https://issuetracker.google.com/issues/63885809上向AndroID Studio团队报告此问题
他们提到:
3.0 Canary 4 is about the time we added that “Unsupported character” check, so that’s why it happens from that version forward.
他们正在调查更多以解决这个问题,我希望这个答案可以帮助其他人不浪费一个月不更新他们的AndroID Studio. 总结
以上是内存溢出为你收集整理的Android Studio – java.io.IOException:无法生成v1签名全部内容,希望文章能够帮你解决Android Studio – java.io.IOException:无法生成v1签名所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)