Android Studio – java.io.IOException: no se pudo generar la firma v1

Recibo este error después de actualizar mi Android Studio a todas las versiones nuevas después de 3.0 Canary 4. (Estoy usando v3.0 porque es mucho más rápido y no hay necesidad de usar Kotlin).

Parece que hay un problema con el flujo de compilation que no puede generar o firmar mi file APK tanto para la versión de debugging como para la versión de lanzamiento.

También traté de eliminar mi debug.keystore , reiniciar AndroidStudio y el sistema (!!!) pero no resolvió.

Aquí hay un logging completo de Gradle:

FALLO: la compilation falló con una exception.

  • Qué salió mal: la ejecución falló para la tarea ': chris-app: packageDemoDebug'.

    java.io.IOException: no se pudo generar la firma v1

  • Pruebe: ejecute con la opción –info o –debug para get más salida de logging.

  • La exception es: org.gradle.api.tasks.TaskExecutionException: ejecución fallida para la tarea ': chris-app: packageDemoDebug'. en org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions (ExecuteActionsTaskExecuter.java:100) en org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute (ExecuteActionsTaskExecuter.java:70) en org.gradle .api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute (SkipUpToDateTaskExecuter.java:64) en org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute (ResolveTaskOutputCachingStateExecuter.java:54) en org.gradle.api.internal .tasks.execution.ValidatingTaskExecuter.execute (ValidatingTaskExecuter.java:58) en org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute (SkipEmptySourceFilesTaskExecuter.java:88) en org.gradle.api.internal.tasks.execution .ResolveTaskArtifactStateTaskExecuter.execute (ResolveTaskArtifactStateTaskExecuter.java:52) en org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute (SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks .execution.SkipOnlyIfTaskExecuter.execute (SkipOnlyIfTaskExecuter.java:54) en org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute (ExecuteAtMostOnceTaskExecuter.java:43) en org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter .execute (CatchExceptionTaskExecuter.java:34) en org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker $ 1.run (DefaultTaskGraphExecuter.java:243) en org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute (DefaultBuildOperationExecutor.java: 336) en org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute (DefaultBuildOperationExecutor.java:328) en org.gradle.internal.progress.DefaultBuildOperationExecutor.execute (DefaultBuildOperationExecutor.java:197) en org.gradle.internal.progress .DefaultBuildOperationExecutor.run (DefaultBuildOperationExecutor.java:107) en org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWo rker.execute (DefaultTaskGraphExecuter.java:236) en org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.execute (DefaultTaskGraphExecuter.java:225) en org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.processTask (DefaultTaskPlanExecutor.java: 124) en org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.access $ 200 (DefaultTaskPlanExecutor.java:80) en org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1.execute (DefaultTaskPlanExecutor.java:105) en org.gradle .execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1.execute (DefaultTaskPlanExecutor.java:99) en org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute (DefaultTaskExecutionPlan.java:625) en org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask ( DefaultTaskExecutionPlan.java:580) en org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.run (DefaultTaskPlanExecutor.java:99) en org.gradle.int ernal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute (ExecutorPolicy.java:63) en org.gradle.internal.concurrent.ManagedExecutorImpl $ 1.run (ManagedExecutorImpl.java:46) en org.gradle.internal.concurrent.ThreadFactoryImpl $ ManagedThreadRunnable.run (ThreadFactoryImpl.java:55) Causado por: org.gradle.tooling.BuildException: java.io.IOException: no se pudo generar la firma v1 en com.android.build.gradle.internal.scope.OutputScope.lambda $ parallelForEachOutput $ 10 (OutputScope .java: 240) en com.android.build.gradle.internal.scope.OutputScope.parallelForEachOutput (OutputScope.java:235) en com.android.build.gradle.internal.scope.OutputScope.parallelForEachOutput (OutputScope.java:196 ) en com.android.build.gradle.internal.scope.OutputScope.parallelForEachOutput (OutputScope.java:180) en com.android.build.gradle.tasks.PackageAndroidArtifact.doFullTaskAction (PackageAndroidArtifact.java:466) en com.android. build.gradle.internal.tasks.IncrementalTask.taskAction (IncrementalTask.java:80) en org.gra dle.internal.reflect.JavaMethod.invoke (JavaMethod.java:73) en org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore $ IncrementalTaskAction.doExecute (DefaultTaskClassInfoStore.java:168) en org.gradle.api.internal. project.taskfactory.DefaultTaskClassInfoStore $ StandardTaskAction.execute (DefaultTaskClassInfoStore.java:134) en org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore $ StandardTaskAction.execute (DefaultTaskClassInfoStore.java:121) en org.gradle.api.internal. tasks.execution.ExecuteActionsTaskExecuter $ 1.run (ExecuteActionsTaskExecuter.java:122) en org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute (DefaultBuildOperationExecutor.java:336) en org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute (DefaultBuildOperationExecutor.java:328) en org.gradle.internal.progress.DefaultBuildOperationExecutor.execute (DefaultBuildOperationExecutor.java:197) en org.gradle.internal.prog ress.DefaultBuildOperationExecutor.run (DefaultBuildOperationExecutor.java:107) en org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction (ExecuteActionsTaskExecuter.java:111) en org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter. executeActions (ExecuteActionsTaskExecuter.java:92) … 27 más Causado por: java.lang.RuntimeException: java.io.IOException: Error al generar la firma v1 Causado por: java.io.IOException: Error al generar la firma v1 en com. android.apkzlib.sign.SigningExtension.onOutputZipReadyForUpdate (SigningExtension.java:297) en com.android.apkzlib.sign.SigningExtension.access $ 200 (SigningExtension.java:55) en com.android.apkzlib.sign.SigningExtension $ 1.lambda $ beforeUpdate $ 2 (SigningExtension.java:175) en com.android.apkzlib.zip.ZFile.notify (ZFile.java:2099) en com.android.apkzlib.zip.ZFile.update (ZFile.java:871) en com. android.apkzlib.zip.ZFile.close (ZFile.java:1161) en com.android.apkzlib.zfile.ApkZFileCreator.close (ApkZFileCreator .java: 172) en com.google.common.io.Closer.close (Closer.java:216) en com.android.builder.internal.packaging.IncrementalPackager.close (IncrementalPackager.java:332) en com.android. build.gradle.tasks.PackageAndroidArtifact.doTask (PackageAndroidArtifact.java:698) en com.android.build.gradle.tasks.PackageAndroidArtifact.splitFullAction (PackageAndroidArtifact.java:520) en com.android.build.gradle.internal.scope. OutputScope.lambda $ parallelForEachOutput $ 6 (OutputScope.java:185) en com.android.build.gradle.internal.scope.OutputScope.lambda $ parallelForEachOutput $ 7 (OutputScope.java:202) en com.android.build.gradle.internal. scope.OutputScope.lambda $ null $ 8 (OutputScope.java:224) "en com.android.apksig.internal.apk.v1.V1SchemeSigner.checkEntryNameValid (V1SchemeSigner.java:406) en com.android.apksig.internal.apk. v1.V1SchemeSigner.generateManifestFile (V1SchemeSigner.java:373) en com.android.apksig.internal.apk.v1.V1SchemeSigner.sign (V1SchemeSigner.java:253) en com.android.apksig.DefaultApkSignerEngine. outputJarEntries (DefaultApkSignerEngine.java:372) en com.android.apkzlib.sign.SigningExtension.onOutputZipReadyForUpdate (SigningExtension.java:295) … 13 más

BUILD FAILED en 2m 49s

Después de más investigaciones usando gradle assemble --stacktrace command Encontré que el problema es con el process de compression de APK:

Error: org.gradle.tooling.BuildException: error al generar la firma v1 Error: java.io.IOException: error al generar la firma v1 Error: com.android.apksig.apk.ApkFormatException: carácter no compatible 0x0d en el nombre de la input ZIP "assets / ¿Icono?"

Hubo un file llamado "Icono?" en mi proyecto, que es un file MacOS que indica el icono de la carpeta y contiene caracteres CR, LF dentro.

Eliminé el file y ahora todo está funcionando bien.

Este problema apareció en todas las versiones después de Android Studio Canary 4 e informo el problema al equipo de Android Studio en este hilo https://issuetracker.google.com/issues/63885809

y ellos mencionaron:

3.0 Canary 4 es aproximadamente la vez que agregamos esa verificación de "carácter no admitido", por eso es que pasa de esa versión hacia adelante.

Están investigando más para resolver este problema y espero que esta respuesta ayude a otros a no perder un mes sin actualizar su Android Studio. 🙂

  • Google Assistant SDK rechaza el canal autenticado como "UNAUTHENTICATED"
  • ¿Hay alguna forma de utilizar el valor pnetworkingeterminado en un parámetro no opcional cuando se pasa null?
  • Acceso directo de Kotlin al button en android.support.v4.app.Fragment reference de object nulo
  • Kotlin: no se puede usar 'T' como parámetro de tipo reificado. Usa una class en su lugar
  • Kotlin y @Transient
  • ¿Cómo hacer reference a la class interna anónima en Kotlin?
  • No se permite declarar una tarea 'limpia' personalizada cuando se usan los complementos estándar de ciclo de vida de Gradle
  • Combinar arguments de constructor opcionales obligatorios y arbitrarios con Groovy
  • Beneficios de LINQ sobre el método funcional chaines
  • Kotlin - param genérico en list - mezcla de Java y Kotlin
  • No se puede inicializar el analizador de objects para el model. Productos, no se encontraron constructores aceptables