IOException: no se pudo encontrar el código de byte al actualizar a Android Studio 3.1
android-studio android-gradle (8)
Ayer, Google anunció que Android Studio 3.1 ya está disponible para descargar en el canal de lanzamiento estable. Así que decidí darle una oportunidad.
Antes de eso, mi proyecto se compiló con éxito, pero después de actualizar AS a 3.1
y la herramienta de compilación gradle a com.android.tools.build:gradle:3.1.0
(forzó la actualización de Gradle Wrapper 4.4) falló con esta excepción:
java.lang.RuntimeException: com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: Failed to find byte code for android/hardware/camera2/CameraManager$TorchCallback
at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212)
at sun.reflect.GeneratedMethodAccessor309.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.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
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:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
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.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
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:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
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:123)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
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: com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: Failed to find byte code for android/hardware/camera2/CameraManager$TorchCallback
at com.android.build.gradle.internal.transforms.InstantRunTransform.doTransform(InstantRunTransform.java:312)
at com.android.build.gradle.internal.transforms.InstantRunTransform.transform(InstantRunTransform.java:178)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:221)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:217)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
... 47 more
Ya hago una reconstrucción limpia completa o incluso File-> Invalidate Caches/Restart..
, pero todavía no funciona.
¿Alguien sabe como resolver esto? Gracias.
Como dijo @Malcolm, el problema está relacionado con Android Studio 3.1.
Todavía está sucediendo en Android Studio 3.1.2 si intento ejecutarlo en un dispositivo con Android 5.1 mientras la ejecución instantánea está habilitada.
Invalidar cachés, borrar / reconstruir el proyecto no funcionó para mí.
El problema se resolvió cuando cambié a un dispositivo con Android 7.0, pero creo que Android 6.0+ también funcionaría. Si puede cambiar el dispositivo, inténtelo. No es necesario deshabilitar la ejecución instantánea.
Debes intentar limpiar y reconstruir el proyecto. Si el problema persiste, elimine la carpeta .gradle
dentro de su proyecto. Por último, si ninguno funciona, use File-> Invalidate Caches/Restart..
desde el menú de Android Studio.
Desactivar la ejecución instantánea funcionó para mí
Downgrade la herramienta de compilación gradle de com.android.tools.build:gradle:3.1.1
a com.android.tools.build:gradle:3.0.1
funciona para mí.
Hay un problema , que prometen corregir en 3.2. Hasta entonces, es probable que deba retroceder a Android Studio 3.0 si no desea desactivar la ejecución instantánea. Por qué no quieren lanzar una revisión para esto, no lo sé. Parece ser un error bastante importante.
Ver:
Sugiero votar por el problema, tal vez esto los motive a liberar la solución antes.
Primero vaya al menú de compilación y limpie el proyecto Después de limpiar, reconstruye el proyecto.
Si no funciona, intente agregar esta línea en el archivo de construcción gradle:
defaultConfig {
multiDexEnabled true
}
Para la dependencia:
dependencies
{
compile ''com.android.support:multidex:1.0.0''
}
Tal como dijo @Malcolm, este es un problema de Android Studio 3.1.
Si no desea revertir Android Studio 3.1 a 3.0, puede deshabilitar la ejecución instantánea.
Si no desea revertir Android Studio 3.1 a 3.0 y necesita Ejecución instantánea, puede editar build.gradle y gradle-wrapper.properties como a continuación:
com.android.tools.build:gradle:3.1.0
-> com.android.tools.build:gradle:3.0.1
distributionUrl = https://services.gradle.org/distributions/gradle-4.4-all.zip
-> distributionUrl = https://services.gradle.org/distributions/gradle-4.1-all.zip
Tuve el mismo problema, después de deshabilitar la ejecución instantánea ... La aplicación se bloqueó en el tiempo de ejecución y lanzó un error noClassDefFound
... En mi caso, estaba usando la función forEach
lambda de Java 8 en Hashmap en lugar de kotlin one ..
Una publicación here y una pregunta similar here describe esto. Tienes que usar paréntesis alrededor de la clave y el valor. p.ej:
dataSet.forEach { (header, dataList) -> }
Esto asegurará utilizar la función kotlin.