16

After updating Gradle version to 3.1, the error below is thrown on running the application:

Failed to find byte code for java/util/function/Function

java.io.IOException: Failed to find byte code for java/util/function/Function at com.android.build.gradle.internal.incremental.AsmUtils.lambda$static$0(AsmUtils.java:89) at com.android.build.gradle.internal.incremental.AsmUtils.loadClass(AsmUtils.java:307)

May anybody help me to fix this?

The full stack error:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithInstantRunForMockDebug'. 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.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:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: Failed to find byte code for java/util/function/Function 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.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 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) ... 32 more Caused by: com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: Failed to find byte code for java/util/function/Function 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) ... 48 more Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: Failed to find byte code for java/util/function/Function at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593) at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677) at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720) at com.android.ide.common.internal.WaitableExecutor.waitForTasksWithQuickFail(WaitableExecutor.java:146) at com.android.build.gradle.internal.transforms.InstantRunTransform.doTransform(InstantRunTransform.java:307) ... 52 more Caused by: java.lang.RuntimeException: java.io.IOException: Failed to find byte code for java/util/function/Function at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1431) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) Caused by: java.io.IOException: Failed to find byte code for java/util/function/Function at com.android.build.gradle.internal.incremental.AsmUtils.lambda$static$0(AsmUtils.java:89) at com.android.build.gradle.internal.incremental.AsmUtils.loadClass(AsmUtils.java:307) at com.android.build.gradle.internal.incremental.AsmUtils.readInterfaceHierarchy(AsmUtils.java:216) at com.android.build.gradle.internal.incremental.AsmUtils.readInterfaces(AsmUtils.java:251) at com.android.build.gradle.internal.incremental.AsmUtils.readInterfaceHierarchy(AsmUtils.java:220) at com.android.build.gradle.internal.incremental.AsmUtils.readInterfaces(AsmUtils.java:251) at com.android.build.gradle.internal.incremental.AsmUtils.loadClass(AsmUtils.java:288) at com.android.build.gradle.internal.incremental.IncrementalVisitor.instrumentClass(IncrementalVisitor.java:342) at com.android.build.gradle.internal.transforms.InstantRunTransform.transformToClasses2Format(InstantRunTransform.java:406) at com.android.build.gradle.internal.transforms.InstantRunTransform.lambda$doTransform$3(InstantRunTransform.java:268) at com.android.build.gradle.internal.transforms.InstantRunTransform.lambda$null$4(InstantRunTransform.java:297) at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424) ... 4 more

Leonam Anjos
  • 181
  • 1
  • 8

7 Answers7

29

It seems that there are several reasons causing this problem.

If you use Kotlin, try changing forEach{ key, value -> ... } to forEach{ (key, value) -> ... }

In my situation, I never use Kotlin. After disable Instant Run, this error gone.

Shaw
  • 1,445
  • 16
  • 21
19

I found the solution for my problem here: Why does Kotlin byte code reference java.util.function.BiConsumer?

I am using Kotlin and I found the line that uses forEach{ key, value -> ... }, and changed it to forEach{ (key, value) -> ... }, which makes Kotlin choose JRE 6 instead of 8.

A. Cheng
  • 191
  • 1
  • 2
  • 1
    +1: Adding the parentheses fixed my issue. I was having the same issue (can't find byte code for BiConsumer) building for Android API 21, and anything API <21 was building but would crash with a ClassDefNotFoundError when it tried to run the forEach. – Sarathi Aug 17 '18 at 17:15
  • Adding the parentheses fixed my issue – lotosbin Nov 28 '18 at 04:16
4

This looks like a compiler issue. Did you try restarting your Android studio? If yes, then try

Build-> Clean Project
Build-> Make Project

If the issue still persists, try to clear cache by File > Invalidate Caches & Restart...

If everything fails, try disabling Instant Run.

Morgan Koh
  • 2,297
  • 24
  • 24
Deepak kaku
  • 1,218
  • 9
  • 15
1

Try to clean & rebuild/make your project. If the issue still exist, disable Instant Run in your android studio and run your app again, that should fix the issue.

alvin
  • 112
  • 1
  • 8
0

I had the same issue, what worked for me was to clean Android Studio preferences:

Remove .AndroidStudioX.X

Remove .gradle

Restart Android Studio

And then I ran into another issue which solution was to disable Instant Run.

Hope it helps someone

Simon30
  • 317
  • 3
  • 12
0

It happens when some gradle plugin doesn't match with minsdk. I was using sceneform sdk, my minsdk was 22 but it required 24. When I changed the minsdk from 22 to 24 - it worked.

Andronicus
  • 25,419
  • 17
  • 47
  • 88
Atri
  • 66
  • 3
0

I had a similar issue and it seemed to have started all of the sudden. Disabling instant run was the only fix that worked for me. I know it was mentioned in here but didn't see any instructions on were to disable it so here you go.... In Android Studio, Select File, Settings, Build "Execution, Deployment, Instant Run", Set "Enable instant Run to Hot Swap Code/resource changes on deploy" to unchecked. Hit Apply, OK, Debug should work again. Thanks to the guys who mentioned it!