总是在更改androidTest代码后重建项目,当更新等级为java8时



在将Java版本从1.7升级到1.8之前,有一堆运行良好的测试用例。但是,在那之后,当我更改任何测试用例并运行项目时总是失败,必须重建所有项目。

根据下面的异常,我猜测desugaring类发生错误,并且desugariing与Java8有关。

有人有好主意吗?

org.gradle.api.tasks.TaskExecutionException:任务执行失败":app:app:transformClassesWithDesugarForDevelopmentDebugAndroidTest"。在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(OutputDirector.CreatingTaskexecuter.java:51)在org.gradle.api.internal.tasks.execution.SkipCachedTaskExecuter.execute(SkipCachedTaskExecuter.java:108)在org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUptoDateTaskExecutor.java:62)在org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutput CachingstateExecuter.java:54)在org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildcacheKeyExecute.java:61)在org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)在org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmpitySourceFilesTaskexecuter.java:97)在org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)在org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)在org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecution.execute(SkipTaskWithNoActionsExecuter.java:52)在org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnyIfTaskexecuter.java:54)在org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)在org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExcessionTaskExecuter.java:34)在org.gradle.expension.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)在org.grade.internal.progress.DefaultBuildOperationExecutior$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)在org.grade.internal.progress.DefaultBuildOperationExecutior$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)在org.grade.internal.progress.DefaultBuildOperationExecution.execute(DefaultBuildOperationExecutor.java:199)在org.grade.internal.progress.DefaultBuildOperationExecutior.run(DefaultBuildOperationExecutor.java:110)在org.gradle.expension.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)在org.gradle.expension.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.DefaultTaskPlanExecutior$TaskExecutiorWorker$1.execute(DefaultTaskPlanExecutiator.java:104)在org.gradle.execution.taskgraph.DefaultTaskPlanExecutiator$TaskExecutiorWorker$1.execute(DefaultTaskPlanExecutior.java:98)在org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java: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.ManagedExecutiorImpl$1.run(ManagedExecutiorimpl.java:46)在java.util.concurrent.ThreadPoolExecutiator.runWorker(ThreadPoolExecutiator.java:1142)在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)在org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)在java.lang.Thread.run(Thread.java:745)由以下原因引起:java.lang.RuntimeException:com.android.build.api.transform.TransformException:java.lang.ArrayIndexOutOfBoundsException位于com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)在com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)在com.android.build.gradle.internal.ppipeline.TransformTask.transform(TransformTask.java:212)位于sun.reflect.GeneratedMethodAccessor2173.invoke(未知源)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)位于java.lang.reflect.Method.ioke(Method.java:498)org.gradle.internal.reflect.JavaMethod.reinvoke(JavaMethod.java:73)org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46)在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(ExecuteActionsSaskExecuter.java:121)在org.grade.internal.progress.DefaultBuildOperationExecutior$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)在org.grade.internal.progress.DefaultBuildOperationExecutior$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)在org.grade.internal.progress.DefaultBuildOperationExecution.execute(DefaultBuildOperationExecutor.java:199)在org.grade.internal.progress.DefaultBuildOperationExecutior.run(DefaultBuildOperationExecutor.java:110)在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)…34更多原因:com.android.build.api.transform.TransformException:java.lang.ArrayIndexOutOfBoundsException位于com.android.build.gradle.internal.transforms.DesugarTransform.transform(DesugarTransform.java:292)在com.android.build.gradle.internal.ppipeline.TransformTask$2.call(TransformTask.java:221)在com.android.build.gradle.internal.ppipeline.TransformTask$2.call(TransformTask.java:217)在com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)…还有49个原因:java.lang.ArrayIndexOutOfBoundsExceptionsun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessor Impl.java:62)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessor Impl.java:45)位于java.lang.reflect.Constructure.newInstance(Constructor.java:423)在java.util.concurrent.FukJoinTask.getThrowableException(ForkJoinTask.java:598)在java.util.concurrent.FukJoinTask.reportException(ForkJoinTask.java:677)位于java.util.concurrent.FukJoinTask.join(ForkJoinTask.java:720)com.android.ide.common.internal.WaitableExecutitor.waitForTasksWithQuickFail(WaitableExecutior.java:146)在com.android.build.gradle.internal.transforms.DesugarIncrementalTransformHelper.getInitalGraphData(DesugarIncrementalTransformHelper.java:162)在com.android.build.gradle.internal.transforms.DesugarIncrementalTransformHelper.lambda$makeDesugaringGraph$2(DesugarIncrementalTransformHelper.java:134)在com.android.builder.desugaring.DesugaringGraphs.forVariant(DesugaringGraphs.java:50)在com.android.build.gradle.internal.transforms.DesugarIncrementalTransformHelper.makeDesugaringGraph(DesugarIncrementalTransformHelper.java:132)在com.google.commmon.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:160)在com.android.build.gradle.internal.transforms.DesugarIncrementalTransformHelper.getAdditionalPaths(DesugarIncrementalTransformHelper.java:111)在com.android.build.gradle.internal.transforms.DesugarTransform.incrementalAnalysis(DesugarTransform.java:305)在com.android.build.gradle.internal.transforms.DesugarTransform.transform(DesugarTransform.java:264)…52更多原因:java.lang.ArrayIndexOutOfBoundsException

首先,我很抱歉这个问题没有说明。

在我们将Java版本从1.7升级到1.8之前,编写androidTest代码是可以的。之后,当我们更改任何代码并运行androidTest项目时,总是失败,必须重建所有项目。

根据上面的异常,猜测desugaring类发生错误,desugariing与Java8有关。

最新更新