Fixed
Status Update
Comments
hu...@live.cn <hu...@live.cn> #2
And using R8 version: 1.5.63 (build edbc5697e7b17cbfcf903731dfde015aab9215cd from go/r8bot (luci-r8-ci-archive-0-xksf))
ch...@google.com <ch...@google.com>
ap...@google.com <ap...@google.com> #3
Project: r8
Branch: master
commit 5cd1812ea8fa970edf014db69352f5566ec87745
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Jul 31 15:56:28 2019
Handle multi-new-array instructions without out-values
Bug: 138668220
Change-Id: If8db420af45766f23623347d85a960c94f804b24
M src/main/java/com/android/tools/r8/cf/LoadStoreHelper.java
A src/test/java/com/android/tools/r8/cf/UnusedMultiNewArrayTest.java
https://r8-review.googlesource.com/41146
Branch: master
commit 5cd1812ea8fa970edf014db69352f5566ec87745
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Jul 31 15:56:28 2019
Handle multi-new-array instructions without out-values
Bug: 138668220
Change-Id: If8db420af45766f23623347d85a960c94f804b24
M src/main/java/com/android/tools/r8/cf/LoadStoreHelper.java
A src/test/java/com/android/tools/r8/cf/UnusedMultiNewArrayTest.java
ap...@google.com <ap...@google.com> #4
Project: r8
Branch: d8-1.5
commit 603c1c497ced79327c3fda78f7173387dba1edd6
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Aug 01 12:48:54 2019
Version 1.5.64
Cherry pick: Handle multi-new-array instructions without out-values
CL:https://r8-review.googlesource.com/c/r8/+/41146
Bug: 138668220
Change-Id: Id4df769fe13aede9e4d49223ce07f938fb6fe375
M src/main/java/com/android/tools/r8/Version.java
M src/main/java/com/android/tools/r8/cf/LoadStoreHelper.java
A src/test/java/com/android/tools/r8/cf/UnusedMultiNewArrayTest.java
https://r8-review.googlesource.com/41180
Branch: d8-1.5
commit 603c1c497ced79327c3fda78f7173387dba1edd6
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Aug 01 12:48:54 2019
Version 1.5.64
Cherry pick: Handle multi-new-array instructions without out-values
CL:
Bug: 138668220
Change-Id: Id4df769fe13aede9e4d49223ce07f938fb6fe375
M src/main/java/com/android/tools/r8/Version.java
M src/main/java/com/android/tools/r8/cf/LoadStoreHelper.java
A src/test/java/com/android/tools/r8/cf/UnusedMultiNewArrayTest.java
ch...@google.com <ch...@google.com> #5
Thanks for the report! This should be fixed in R8 version 1.5.64, which should be available in AGP 3.5.1.
You can try this version of R8 by making the following changes to build.gradle.
buildscript {
repositories {
maven { url 'http://storage.googleapis.com/r8-releases/raw ' }
}
dependencies {
classpath 'com.android.tools:r8:1.5.64' // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:X.Y.Z' // Your current AGP version.
}
}
You can try this version of R8 by making the following changes to build.gradle.
buildscript {
repositories {
maven { url '
}
dependencies {
classpath 'com.android.tools:r8:1.5.64' // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:X.Y.Z' // Your current AGP version.
}
}
Description
envioirment:
* com.android.tools.build:gradle:3.4.2
* compileSdkVersion 28
* targetSdkVersion 28
* minSdkVersion 21
with using Kotlin 1.3.41 and Kotlin coroutines 1.3.0-RC
Error log:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':wallet:transformClassesAndResourcesWithR8ForRelease'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:95)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
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: java.lang.NullPointerException
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:598)
at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1005)
at com.android.tools.r8.utils.ThreadUtils.awaitFutures(ThreadUtils.java:21)
at com.android.tools.r8.ir.conversion.MethodProcessingOrder.forEachMethod(MethodProcessingOrder.java:88)
at com.android.tools.r8.ir.conversion.IRConverter.optimize(IRConverter.java:539)
at com.android.tools.r8.R8.run(R8.java:516)
at com.android.tools.r8.R8.run(R8.java:260)
at com.android.tools.r8.R8.lambda$runForTesting$1(R8.java:251)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:61)
at com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(ExceptionUtils.java:49)
at com.android.tools.r8.R8.runForTesting(R8.java:247)
at com.android.tools.r8.R8.run(R8.java:152)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:189)
at com.android.build.gradle.internal.transforms.R8Transform.transform(R8Transform.kt:260)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
at sun.reflect.GeneratedMethodAccessor602.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:47)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:284)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:273)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:258)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:145)
at org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:49)
at org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
at org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
at org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
at org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:33)
at org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:43)
at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:29)
at org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:134)
at org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$3(CacheStep.java:83)
at java.util.Optional.orElseGet(Optional.java:267)
at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:36)
at org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
at java.util.Optional.map(Optional.java:215)
at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:91)
... 35 more
Suppressed: java.util.concurrent.ExecutionException: java.lang.NullPointerException
at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
... 91 more
[CIRCULAR REFERENCE:java.lang.NullPointerException]
Caused by: java.lang.NullPointerException
at com.android.tools.r8.cf.LoadStoreHelper.storeOutValue(LoadStoreHelper.java:184)
at com.android.tools.r8.ir.code.InvokeMultiNewArray.insertLoadAndStores(InvokeMultiNewArray.java:92)
at com.android.tools.r8.cf.LoadStoreHelper.insertLoadsAndStores(LoadStoreHelper.java:104)
at com.android.tools.r8.ir.conversion.CfBuilder.build(CfBuilder.java:139)
at com.android.tools.r8.ir.conversion.IRConverter.finalizeToCf(IRConverter.java:1329)
at com.android.tools.r8.ir.conversion.IRConverter.finalizeIR(IRConverter.java:1309)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCode(IRConverter.java:1167)
at com.android.tools.r8.ir.conversion.IRConverter.processMethod(IRConverter.java:819)
at com.android.tools.r8.ir.conversion.IRConverter.lambda$optimize$5(IRConverter.java:541)
at com.android.tools.r8.ir.conversion.MethodProcessingOrder.lambda$forEachMethod$0(MethodProcessingOrder.java:84)
at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
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)