Ошибка компиляции Android - не удалось найти байт-код для java/util/function/Function
После обновления версии Gradle до версии 3.1 при запуске приложения возникает ошибка:
Не удалось найти байт-код для java/util/function/Function
java.io.IOException: Не удалось найти байт-код для java/util/function/Функция в com.android.build.gradle.internal.incremental.AsmUtils.lambda $ static $ 0 (AsmUtils.java:89) в com.android. build.gradle.internal.incremental.AsmUtils.loadClass(AsmUtils.java:307)
Может кто-нибудь помочь мне исправить это?
Полная ошибка стека:
org.gradle.api.tasks.TaskExecutionException: выполнение не выполнено для задачи: app: transformClassesWithInstantRunForMockDebug. на org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100) в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) на org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) в org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) на org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) в org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60) на org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97) в org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87) на org.gradle.api.internal.tasks.execu .ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) в org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) на org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter. выполните (SkipOnlyIfTaskExecuter.java:54) в org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) в org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter. java: 34) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker $ 1.run(DefaultTaskGraphExecuter.java:248) в org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) в org. Уровеньвыше. Уровеньвыше. OperationExecutor.execute(DefaultBuildOperationExecutor.java:199) в org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) в org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) в org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123) на org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.access $ 200 (DefaultTaskPlanExecutor.java:79) в org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1.execute(DefaultTaskPlanExecutor.java:104) в org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1. выполнить (DefaultTaskPlanExecutor.java:98) в org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.jav a: 626) в org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581) в org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98) на org.gradle.internal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) в org.gradle.internal.concurrent.ManagedExecutorImpl $ 1.run(ManagedExecutorImpl.java:46) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624) в org.gradle.internal.concurrent.ThreadFactoryImpl $ ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) в 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: не удалось найти байт код для java/util/function/Функция в com.android.builder.profile.Record er $ Block.handleException(Recorder.java:55) в com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104) в com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask. java: 212) at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) на sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) на sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke(Method.java:498) в org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) в org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java: 46) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39) в org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26 ) в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ 1.run(ExecuteActionsTaskExecuter.java:121) в o rg.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) в org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) на org.gradle.internal.progress. DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) в org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) в 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 Причиняется: com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: Не удалось найти байт-код для java/util/function/Функция в com.android.build.gradle.internal.transforms.InstantRunT ransform.doTransform(InstantRunTransform.java:312) в com.android.build.gradle.internal.transforms.InstantRunTransform.transform(InstantRunTransform.java:178) в com.android.build.gradle.internal.pipeline.TransformTask $ 2.call(TransformTask.java:221) в com.android.build.gradle.internal.pipeline.TransformTask $ 2.call(TransformTask.java:217) в com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)... 48 more Причиняется: java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: не удалось найти байт-код для java/util/function/Function at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (собственный метод ) на sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) на sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) в java.lang.reflect.Constructor.newInstance(Constructor.java:423) в java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593) в java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677) в java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720) в com.android.ide.common.internal.WaitableExecutor.waitForTasksWithQuickFail(WaitableExecutor. java: 146) at com.android.build.gradle.internal.transforms.InstantRunTransform.doTransform(InstantRunTransform.java:307)... 52 more Причиняется: java.lang.RuntimeException: java.io.IOException: Не удалось найти байтовый код для java/util/function/Функция в java.util.concurrent.ForkJoinTask $ AdaptedCallable.exec(ForkJoinTask.java:1431) в java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) в java.util.concurrent.ForkJoinPool $ WorkQueue.runTask(ForkJoinPool.java:1056) в java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) в java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) Причиненный by: java.io.IOException: Не удалось найти байт-код для java/util/function/Функция в com.android.build.gradle.internal.incremental. AsmUtils.lambda $ static $ 0 (AsmUtils.java:89) в com.android.build.gradle.internal.incremental.AsmUtils.loadClass(AsmUtils.java.307) в com.android.build.gradle.internal.incremental.AsmUtils.readInterfaceHierarchy(AsmUtils.java:216) в com.android.build.gradle.internal.incremental.AsmUtils.readInterfaces(AsmUtils.java:251) в com.android.build.gradle.internal.incremental.AsmUtils.readInterfaceHierarchy(AsmUtils.java: 220) at com.android.build.gradle.internal.incremental.AsmUtils.readInterfaces(AsmUtils.java:251) в com.android.build.gradle.internal.incremental.AsmUtils.loadClass(AsmUtils.java:288 ) в com.android.build.gradle.internal.incremental.IncrementalVisitor.instrumentClass(IncrementalVisitor.java:342) в com.android.build.gradle.internal.transforms.InstantRunTransform.transformToClasses2Format (InstantRunTransform.java:406) в com. android.build.gradle.internal.transforms.InstantRunTransform.lambda $ doTransform $ 3 (InstantRunTransform.java:268) в com.android.build.gradle.internal.transf orms.InstantRunTransform.lambda $ null $ 4 (InstantRunTransform.java:297) в java.util.concurrent.ForkJoinTask $ AdaptedCallable.exec(ForkJoinTask.java:1424)... еще 4
Ответы
Ответ 1
Это похоже на проблему компилятора.
Вы пытались перезапустить свою Android-студию?
Если да, то попробуйте
Build-> Clean Project
Build-> Make Project
Если проблема не устранена, попробуйте очистить кэш с помощью File > Invalidate Caches & Restart...
Если ничего не получается, попробуйте отключить Instant Run.
Ответ 2
Кажется, есть несколько причин, вызывающих эту проблему.
Если вы используете Kotlin, попробуйте изменить forEach{ key, value ->... }
на forEach{ (key, value) ->... }
В моей ситуации я никогда не использую Kotlin. После отключения Instant Run эта ошибка исчезла.
Ответ 3
Я нашел решение для своей проблемы здесь: Почему ссылка на код байта Kotlin java.util.function.BiConsumer?
Я использую Kotlin, и я нашел строку, использующую forEach {key, value ->...}, и изменил ее на forEach {(key, value) ->...}, что делает Kotlin выбором JRE 6 вместо 8,
Ответ 4
Попробуйте очистить и перестроить/сделать свой проект. Если проблема все еще существует, отключите Instant Run в своей андроид-студии и снова запустите приложение, это должно решить проблему.
Ответ 5
У меня была та же проблема, что для меня работало, чтобы очистить настройки Android Studio:
Удалить.AndroidStudioX.X
Удалить.gradle
Перезапустить Android Studio
И затем я столкнулся с другой проблемой, решение которой заключалось в отключении Instant Run.
Надеюсь, это поможет кому-то
Ответ 6
Это происходит, когда какой-то плагин Gradle не совпадает с minsdk. Я использовал сценограмму SDK, мой minsdk был 22, но мне потребовалось 24. Когда я изменил minsdk с 22 на 24 - это работало.
Ответ 7
У меня была похожая проблема, и она, казалось, началась внезапно. Отключение мгновенного запуска было единственным исправлением, которое работало для меня. Я знаю, что это было упомянуто здесь, но не видел каких-либо инструкций по его отключению, поэтому вы идете.... В Android Studio выберите Файл, Настройки, Сборка "Выполнение, Развертывание, Мгновенный запуск", Установите "Включить мгновенное Запустите "Горячая замена кода/изменения ресурсов при развертывании", чтобы отключить проверку. Нажмите Apply, ОК, Debug должен снова работать. Спасибо ребятам, которые упомянули об этом!