首页 文章

Android编译错误 - 无法找到java / util / function / Function的字节代码

提问于
浏览
16

将Gradle版本更新为3.1后,运行应用程序时会抛出以下错误:

无法找到java / util / function /函数java.io.IOException的字节代码:无法在com.android.build.gradle.internal.incremental.AsmUtils.lambda $中找到java / util / function / Function的字节代码静态$ 0(AsmUtils.java:89)在com.android.build.gradle.internal.incremental.AsmUtils.loadClass(AsmUtils.java:307)

愿有人帮我解决这个问题吗?

完整堆栈错误:

org.gradle.api.tasks.TaskExecutionException:任务':app:transformClassesWithInstantRunForMockDebug'的执行失败 . 在org.gradle上的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的org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)上的.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) org.gradle.api.internal.tasks.execution上的.gasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60) org.gradle.api.internal.tasks.execu上的.skipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)在org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter的org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)中的.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) . 执行(SkipOnlyIfTaskExecuter.java:54)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)org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)at org . gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)org.gradle.internal.progress.DefaultBuild在Org.gradle.internal.progress.DefaultBupeOperationExecutor.run上的OperationExecutor.execute(DefaultBuildOperationExecutor.java:199)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)at org.gradle.execution.taskgraph .DefaultTaskPlanExecutor $ TaskExecutorWorker.access $ 200(DefaultTaskPlanExecutor.java:79)org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1.execute(DefaultTaskPlanExecutor.java:104)at 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)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)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)引起:java.lang.RuntimeException:com.android.build.api.transform.TransformException:java.lang.RuntimeException:java.lang.RuntimeException:java.io.IOException:无法在com.android.builder中找到java / util / function / Function的字节代码 . 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)sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java位于org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute的org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)中的.lang.reflect.Method.invoke(Method.java:498) (IncrementalTaskAction.java:46)在org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java: 39)atg.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ 1.run(ExecuteActionsTaskExecuter.java:121)at at org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)org.gradle.internal.progress . OrBu.gradle.internal.tasks.exe.exe.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java)中的org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)上的DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199): 110)at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)... 32更多引起:com.android.build.api . transform.TransformException:java.lang.RuntimeException:java.lang.RuntimeException:java.io.IOException:无法在com.android.build.gradle.internal.transforms.InstantRunTransform中找到java / util / function / Function的字节代码 . doTransform(InstantRunTransform.java:312)com.android.build.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).. . 更多引起:java.lang.RuntimeException:java.lang.RuntimeException:java.io.IOException:无法在sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)中找到java / util / function / Function的字节代码sun.reflect.DelegatingConstru中的sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ctorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)位于java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)的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更多引起:java.lang.RuntimeException:java.io.IOException:无法找到java /的字节代码java.util.concurrent.ForkJoinPool上的java.util.concurrent.ForkJoinTask $ AdaptedCallable.exec(ForkJoinTask.java:1431)中的util / function / Function java.util.concurrent.ForkJoinPool上的java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) WorkQueue.runTask(ForkJoinPool.java:1056)at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1 692)at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)引起:java.io.IOException:无法在com.android.build.gradle中找到java / util / function / Function的字节代码 . 在com.android.build.gradle.internal的com.android.build.gradle.internal.incremental.AsmUtils.loadClass(AsmUtils.java:307)的internal.incremental.AsmUtils.lambda $ static $ 0(AsmUtils.java:89) .incremental.AsmUtils.readInterfaceHierarchy(AsmUtils.java:216)atcom.android中的com.android.build.internal.incremental.AsmUtils.readInterfaces(AsmUtils.java:251)位于com.android的com.android.build.gradle.internal.incremental.AsmUtils.readInterfaceHierarchy(AsmUtils.java:220) . com.android.build.gradle中的com.android.build.gradle.internal.incremental.AsmUtils.loadClass(AsmUtils.java:288)中的build.gradle.internal.incremental.AsmUtils.readInterfaces(AsmUtils.java:251) . internal.incremental.IncrementalVisitor.instrumentClass(IncrementalVisitor.java:342)位于com.android.buns.grans.internal.transforms的com.android.build.gradle.internal.transforms.InstantRunTransform.transformToClasses2Format(InstantRunTransform.java:406) . 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个

4 回答

  • 19

    我有同样的问题,对我有用的是清理Android Studio首选项:

    删除.AndroidStudioX.X

    删除.gradle

    重启Android Studio

    然后我遇到另一个问题,解决方案是禁用Instant Run .

    希望它可以帮助某人

  • 4

    我在这里找到了我的问题的解决方案:Why does Kotlin byte code reference java.util.function.BiConsumer?

    我正在使用Kotlin,我找到了使用forEach {key,value - > ...}的行,并将其更改为forEach {(key,value) - > ...},这使得Kotlin选择JRE 6而不是8 .

  • 26

    这看起来像编译器问题 . 您是否尝试重启Android工作室?如果是,那就试试吧

    Build-> Clean Project
    Build-> Make Project
    

    如果问题仍然存在,请尝试清除Android Studio缓存

  • 0

    似乎有几个原因导致了这个问题 .

    如果您使用Kotlin,请尝试将 forEach{ key, value -> ... } 更改为 forEach{ (key, value) -> ... }

    在我的情况下,我从不使用Kotlin . 禁用即时运行后,此错误消失 .

相关问题