Fixed
Status Update
Comments
js...@google.com <js...@google.com> #2
Thank you for the report! We have a couple places that check some properties regarding that. Could you run the following command and let us know where the assertion fails? Thanks!
$ JAVA_OPTS="-ea" ./gradlew clean assembleRelease --no-daemon --stacktrace
$ JAVA_OPTS="-ea" ./gradlew clean assembleRelease --no-daemon --stacktrace
js...@google.com <js...@google.com> #3
Just for the record.
r8 $ tools/retrace.py --version 1.5.25 --stacktrace ~/Downloads/stacktrace.txt
Caused by: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at com.android.tools.r8.utils.ThreadUtils.awaitFutures(ThreadUtils.java:21)
at com.android.tools.r8.dex.ApplicationWriter.write(ApplicationWriter.java:280)
at com.android.tools.r8.R8.writeApplication(R8.java:230)
at com.android.tools.r8.R8.run(R8.java:743)
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)
Suppressed: java.util.concurrent.ExecutionException: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
at com.android.tools.r8.utils.ThreadUtils.awaitFutures(ThreadUtils.java:21)
at com.android.tools.r8.dex.ApplicationWriter.write(ApplicationWriter.java:280)
at com.android.tools.r8.R8.writeApplication(R8.java:230)
at com.android.tools.r8.R8.run(R8.java:743)
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)
[CIRCULAR REFERENCE:com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString]
Caused by: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at com.android.tools.r8.code.DexItemBasedConstString.write(DexItemBasedConstString.java:76)
at com.android.tools.r8.dex.DexOutputBuffer.putInstructions(DexOutputBuffer.java:102)
at com.android.tools.r8.dex.FileWriter.writeCodeItem(FileWriter.java:459)
at com.android.tools.r8.dex.FileWriter.writeItems(FileWriter.java:348)
at com.android.tools.r8.dex.FileWriter.generate(FileWriter.java:177)
at com.android.tools.r8.dex.ApplicationWriter.writeDexFile(ApplicationWriter.java:512)
at com.android.tools.r8.dex.ApplicationWriter.lambda$write$1(ApplicationWriter.java:254)
r8 $ tools/retrace.py --version 1.5.25 --stacktrace ~/Downloads/stacktrace.txt
Caused by: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at com.android.tools.r8.utils.ThreadUtils.awaitFutures(ThreadUtils.java:21)
at com.android.tools.r8.dex.ApplicationWriter.write(ApplicationWriter.java:280)
at com.android.tools.r8.R8.writeApplication(R8.java:230)
at com.android.tools.r8.R8.run(R8.java:743)
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)
Suppressed: java.util.concurrent.ExecutionException: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
at com.android.tools.r8.utils.ThreadUtils.awaitFutures(ThreadUtils.java:21)
at com.android.tools.r8.dex.ApplicationWriter.write(ApplicationWriter.java:280)
at com.android.tools.r8.R8.writeApplication(R8.java:230)
at com.android.tools.r8.R8.run(R8.java:743)
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)
[CIRCULAR REFERENCE:com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString]
Caused by: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at com.android.tools.r8.code.DexItemBasedConstString.write(DexItemBasedConstString.java:76)
at com.android.tools.r8.dex.DexOutputBuffer.putInstructions(DexOutputBuffer.java:102)
at com.android.tools.r8.dex.FileWriter.writeCodeItem(FileWriter.java:459)
at com.android.tools.r8.dex.FileWriter.writeItems(FileWriter.java:348)
at com.android.tools.r8.dex.FileWriter.generate(FileWriter.java:177)
at com.android.tools.r8.dex.ApplicationWriter.writeDexFile(ApplicationWriter.java:512)
at com.android.tools.r8.dex.ApplicationWriter.lambda$write$1(ApplicationWriter.java:254)
ev...@willowtreeapps.com <ev...@willowtreeapps.com> #4
Ran that command, looks like the same stacktrace to me but I'l post it below. Let me know if you need any more info.
Execution failed for task ':app:transformClassesAndResourcesWithR8ForSitAutomation'.
> com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesAndResourcesWithR8ForSitAutomation'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:151)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:148)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:141)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
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:416)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
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 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at com.android.tools.r8.utils.ThreadUtils.a(:4)
at com.android.tools.r8.dex.ApplicationWriter.write(:88)
at com.android.tools.r8.R8.writeApplication(:22)
at com.android.tools.r8.R8.a(:663)
at com.android.tools.r8.R8.c(:1)
at com.android.tools.r8.R8.b(:1)
at com.android.tools.r8.utils.z.a(:23)
at com.android.tools.r8.R8.runForTesting(:3)
at com.android.tools.r8.R8.run(:3)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:195)
at com.android.build.gradle.internal.transforms.R8Transform.transform(R8Transform.kt:261)
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:106)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:404)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:393)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:376)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:213)
at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:120)
... 36 more
Suppressed: java.util.concurrent.ExecutionException: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
at com.android.tools.r8.utils.ThreadUtils.a(:4)
at co...
Execution failed for task ':app:transformClassesAndResourcesWithR8ForSitAutomation'.
> com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesAndResourcesWithR8ForSitAutomation'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:151)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:148)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:141)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
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:416)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
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 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at com.android.tools.r8.utils.ThreadUtils.a(:4)
at com.android.tools.r8.dex.ApplicationWriter.write(:88)
at com.android.tools.r8.R8.writeApplication(:22)
at com.android.tools.r8.R8.a(:663)
at com.android.tools.r8.R8.c(:1)
at com.android.tools.r8.R8.b(:1)
at com.android.tools.r8.utils.z.a(:23)
at com.android.tools.r8.R8.runForTesting(:3)
at com.android.tools.r8.R8.run(:3)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:195)
at com.android.build.gradle.internal.transforms.R8Transform.transform(R8Transform.kt:261)
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:106)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:404)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:393)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:376)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:213)
at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:120)
... 36 more
Suppressed: java.util.concurrent.ExecutionException: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
at com.android.tools.r8.utils.ThreadUtils.a(:4)
at co...
js...@google.com <js...@google.com> #5
Thank you for the trial. I expected to catch this assertion: https://r8.googlesource.com/r8/+/refs/heads/d8-1.5/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java#1162 but passing that means at least every method with deferred name computation is marked accordingly. Attached r8.jar has some logging that will reveal which method has such unreachable instruction at the end. Just in case, I attached the diff (against R8 1.5.30). Could you edit your top-level build.gradle as follows and see if the logging discovers something? If it's too verbose and contains something that you don't want to share publicly, you can send it to jsjeon@google.com Thanks!
buildscript {
dependencies {
classpath files($PATH_TO_R8_JAR) // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:X.Y.Z' // Your current AGP version.
}
}
buildscript {
dependencies {
classpath files($PATH_TO_R8_JAR) // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:X.Y.Z' // Your current AGP version.
}
}
ev...@willowtreeapps.com <ev...@willowtreeapps.com> #6
[R8 logging]: useIdentifierNameString: true
[R8 logging]: boolean com.urbanairship.google.PlayServicesUtils.isFusedLocationDependencyAvailable()
registers: 2, inputs: 0, outputs: 1
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 154
0: 0x00: SgetObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isFusedLocationDependencyAvailable
1: 0x02: IfNez v0, 0x26 (+36)
0x04, line 155
2: 0x04: InvokeStatic { } Lcom/urbanairship/google/PlayServicesUtils;->isGooglePlayServicesDependencyAvailable()Z
3: 0x07: MoveResult v0
4: 0x08: Const4 v1, 0x0 (0)
5: 0x09: IfNez v0, 0x12 (+9)
0x0b, line 156
6: 0x0b: InvokeStatic { v1 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
7: 0x0e: MoveResultObject v0
8: 0x0f: SputObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isFusedLocationDependencyAvailable
9: 0x11: Goto 0x26 (+21)
0x12, line 159
10: 0x12: DexItemBasedConstStringv0, "com.google.android.gms.location.FusedLocationProviderClient"
11: 0x14: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x17, line 160
12: 0x17: Const4 v0, 0x1 (1)
13: 0x18: InvokeStatic { v0 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
14: 0x1b: MoveResultObject v0
15: 0x1c: SputObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isFusedLocationDependencyAvailable
0x1e, line 163
16: 0x1e: Goto 0x26 (+8)
0x1f, line 161
17: 0x1f: MoveException v0
0x20, line 162, locals: [0 -> e]
18: 0x20: InvokeStatic { v1 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
19: 0x23: MoveResultObject v1
20: 0x24: SputObject v1, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isFusedLocationDependencyAvailable
0x26, line 167
21: 0x26: SgetObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isFusedLocationDependencyAvailable
22: 0x28: InvokeVirtual { v0 } Ljava/lang/Boolean;->booleanValue()Z
23: 0x2b: MoveResult v0
24: 0x2c: Return v0
Tries (numbers are offsets)
[0x14 .. 0x1d] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x1f
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: boolean com.urbanairship.google.PlayServicesUtils.isGoogleAdsDependencyAvailable()
registers: 2, inputs: 0, outputs: 1
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 177
0: 0x00: SgetObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGoogleAdsDependencyAvailable
1: 0x02: IfNez v0, 0x26 (+36)
0x04, line 178
2: 0x04: InvokeStatic { } Lcom/urbanairship/google/PlayServicesUtils;->isGooglePlayServicesDependencyAvailable()Z
3: 0x07: MoveResult v0
4: 0x08: Const4 v1, 0x0 (0)
5: 0x09: IfNez v0, 0x12 (+9)
0x0b, line 179
6: 0x0b: InvokeStatic { v1 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
7: 0x0e: MoveResultObject v0
8: 0x0f: SputObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGoogleAdsDependencyAvailable
9: 0x11: Goto 0x26 (+21)
0x12, line 182
10: 0x12: DexItemBasedConstStringv0, "com.google.android.gms.ads.identifier.AdvertisingIdClient"
11: 0x14: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x17, line 183
12: 0x17: Const4 v0, 0x1 (1)
13: 0x18: InvokeStatic { v0 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
14: 0x1b: MoveResultObject v0
15: 0x1c: SputObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGoogleAdsDependencyAvailable
0x1e, line 186
16: 0x1e: Goto 0x26 (+8)
0x1f, line 184
17: 0x1f: MoveException v0
0x20, line 185, locals: [0 -> e]
18: 0x20: InvokeStatic { v1 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
19: 0x23: MoveResultObject v1
20: 0x24: SputObject v1, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGoogleAdsDependencyAvailable
0x26, line 190
21: 0x26: SgetObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGoogleAdsDependencyAvailable
22: 0x28: InvokeVirtual { v0 } Ljava/lang/Boolean;->booleanValue()Z
23: 0x2b: MoveResult v0
24: 0x2c: Return v0
Tries (numbers are offsets)
[0x14 .. 0x1d] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x1f
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: boolean com.urbanairship.google.PlayServicesUtils.isGooglePlayServicesDependencyAvailable()
registers: 2, inputs: 0, outputs: 1
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 110
0: 0x00: SgetObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGooglePlayServicesDependencyAvailable
1: 0x02: IfNez v0, 0x19 (+23)
0x04, line 113
2: 0x04: DexItemBasedConstStringv0, "com.google.android.gms.common.GooglePlayServicesUtil"
3: 0x06: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x09, line 114
4: 0x09: Const4 v0, 0x1 (1)
5: 0x0a: InvokeStatic { v0 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
6: 0x0d: MoveResultObject v0
7: 0x0e: SputObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGooglePlayServicesDependencyAvailable
0x10, line 117
8: 0x10: Goto 0x19 (+9)
0x11, line 115
9: 0x11: MoveException v0
0x12, line 116, locals: [0 -> e]
10: 0x12: Const4 v1, 0x0 (0)
11: 0x13: InvokeStatic { v1 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
12: 0x16: MoveResultObject v1
13: 0x17: SputObject v1, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGooglePlayServicesDependencyAvailable
0x19, line 120
14: 0x19: SgetObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGooglePlayServicesDependencyAvailable
15: 0x1b: InvokeVirtual { v0 } Ljava/lang/Boolean;->booleanValue()Z
16: 0x1e: MoveResult v0
17: 0x1f: Return v0
Tries (numbers are offsets)
[0x06 .. 0x0f] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x11
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: void okhttp3.internal.Util.<clinit>()
registers: 5, inputs: 0, outputs: 3
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 65
0: 0x00: Const4 v0, 0x0 (0)
1: 0x01: NewArray v1, v0, byte[]
2: 0x03: SputObject v1, Field byte[] okhttp3.internal.Util.EMPTY_BYTE_ARRAY
0x05, line 66
3: 0x05: NewArray v1, v0, java.lang.String[]
4: 0x07: SputObject v1, Field java.lang.String[] okhttp3.internal.Util.EMPTY_STRING_ARRAY
0x09, line 67
5: 0x09: NewArray v1, v0, java.lang.String[]
6: 0x0b: InvokeStatic { v1 } Lokhttp3/Headers;->of([Ljava/lang/String;)Lokhttp3/Headers;
7: 0x0e: MoveResultObject v1
8: 0x0f: SputObject v1, Field okhttp3.Headers okhttp3.internal.Util.EMPTY_HEADERS
0x11, line 69
9: 0x11: SgetObject v1, Field byte[] okhttp3.internal.Util.EMPTY_BYTE_ARRAY
10: 0x13: Const4 v2, 0x0 (0)
11: 0x14: InvokeStatic { v2 v1 } Lokhttp3/ResponseBody;->create(Lokhttp3/MediaType;[B)Lokhttp3/ResponseBody;
12: 0x17: MoveResultObject v1
13: 0x18: SputObject v1, Field okhttp3.ResponseBody okhttp3.internal.Util.EMPTY_RESPONSE
0x1a, line 70
14: 0x1a: SgetObject v1, Field byte[] okhttp3.internal.Util.EMPTY_BYTE_ARRAY
15: 0x1c: InvokeStatic { v2 v1 } Lokhttp3/RequestBody;->create(Lokhttp3/MediaType;[B)Lokhttp3/RequestBody;
16: 0x1f: MoveResultObject v1
17: 0x20: SputObject v1, Field okhttp3.RequestBody okhttp3.internal.Util.EMPTY_REQUEST
0x22, line 73
18: 0x22: Const4 v1, 0x5 (5)
19: 0x23: NewArray v1, v1, okio.ByteString[]
0x25, line 74
20: 0x25: ConstString v2, "efbbbf"
21: 0x27: InvokeStatic { v2 } Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
22: 0x2a: MoveResultObject v2
23: 0x2b: AputObject v2, v1, v0
0x2d, line 75
24: 0x2d: ConstString v2, "feff"
25: 0x2f: InvokeStatic { v2 } Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
26: 0x32: MoveResultObject v2
27: 0x33: Const4 v3, 0x1 (1)
28: 0x34: AputObject v2, v1, v3
0x36, line 76
29: 0x36: ConstString v2, "fffe"
30: 0x38: InvokeStatic { v2 } Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
31: 0x3b: MoveResultObject v2
32: 0x3c: Const4 v4, 0x2 (2)
33: 0x3d: AputObject v2, v1, v4
0x3f, line 77
34: 0x3f: ConstString v2, "0000ffff"
35: 0x41: InvokeStatic { v2 } Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
36: 0x44: MoveResultObject v2
37: 0x45: Const4 v4, 0x3 (3)
38: 0x46: AputObject v2, v1, v4
0x48, line 78
39: 0x48: ConstString v2, "ffff0000"
40: 0x4a: InvokeStatic { v2 } Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
41: 0x4d: MoveResultObject v2
42: 0x4e: Const4 v4, 0x4 (4)
43: 0x4f: AputObject v2, v1, v4
0x51, line 73
44: 0x51: InvokeStatic { v1 } Lokio/Options;->of([Lokio/ByteString;)Lokio/Options;
45: 0x54: MoveResultObject v1
46: 0x55: SputObject v1, Field okio.Options okhttp3.internal.Util.UNICODE_BOMS
0x57, line 81
47: 0x57: ConstString v1, "UTF-32BE"
48: 0x59: InvokeStatic { v1 } Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
49: 0x5c: MoveResultObject v1
50: 0x5d: SputObject v1, Field java.nio.charset.Charset okhttp3.internal.Util.UTF_32BE
0x5f, line 82
51: 0x5f: ConstString v1, "UTF-32LE"
52: 0x61: InvokeStatic { v1 } Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
53: 0x64: MoveResultObject v1
54: 0x65: SputObject v1, Field java.nio.charset.Charset okhttp3.internal.Util.UTF_32LE
0x67, line 85
55: 0x67: ConstString v1, "GMT"
56: 0x69: InvokeStatic { v1 } Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
57: 0x6c: MoveResultObject v1
58: 0x6d: SputObject v1, Field java.util.TimeZone okhttp3.internal.Util.UTC
0x6f, line 87
59: 0x6f: SgetObject v1, Field okhttp3.internal.-$$Lambda$TEfSBt3hRUlBSSARfPEHsJesTtE okhttp3.internal.-$$Lambda$TEfSBt3hRUlBSSARfPEHsJesTtE.INSTANCE
60: 0x71: SputObject v1, Field java.util.Comparator okhttp3.internal.Util.NATURAL_ORDER
0x73, line 94
61: 0x73: ConstClass v1, java.lang.Throwable
62: 0x75: NewArray v2, v3, java.lang.Class[]
63: 0x77: ConstClass v3, java.lang.Throwable
64: 0x79: AputObject v3, v2, v0
65: 0x7b: DexItemBasedConstStringv0, "Method java.lang.Throwable.addSuppressed Proto VL void java.lang.Throwable"
66: 0x7d: InvokeVirtual { v1 v0 v2 } Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
67: 0x80: MoveResultObject v0
0x81, line 97, locals: [0 -> m]
68: 0x81: Goto 0x84 (+3)
0x82, line 95
69: 0x82: MoveException v0
0x83, line 96, locals: [0 -> e]
70: 0x83: Const4 v0, 0x0 (0)
0x84, line 98, locals: [0 -> m]
71: 0x84: SputObject v0, Field java.lang.reflect.Method okhttp3.internal.Util.addSuppressedExceptionMethod
0x86, line 120
72: 0x86: ConstString v0, "([0-9a-fA-F]*:[0-9a-fA-F:.]*)|([\d.]+)"
73: 0x88: InvokeStatic { v0 } Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
74: 0x8b: MoveResultObject v0
75: 0x8c: SputObject v0, Field java.util.regex.Pattern okhttp3.internal.Util.VERIFY_AS_IP_ADDRESS
76: 0x8e: ReturnVoid
Tries (numbers are offsets)
[0x73 .. 0x7a] -> 0
[0x7d .. 0x80] -> 0
Handlers (numbers are offsets)
0: [
java.lang.Exception -> 0x82
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: okhttp3.internal.platform.AndroidPlatform$CloseGuard okhttp3.internal.platform.AndroidPlatform$CloseGuard.get()
registers: 6, inputs: 0, outputs: 4
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 340
0: 0x00: DexItemBasedConstStringv0, "dalvik.system.CloseGuard"
1: 0x02: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
2: 0x05: MoveResultObject v0
0x06, line 341, locals: [0 -> closeGuardClass]
3: 0x06: ConstString v1, "get"
4: 0x08: Const4 v2, 0x0 (0)
5: 0x09: NewArray v3, v2, java.lang.Class[]
6: 0x0b: InvokeVirtual { v0 v1 v3 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
7: 0x0e: MoveResultObject v1
0x0f, line 342, locals: [0 -> closeGuardClass, 1 -> getMethod]
8: 0x0f: ConstString v3, "open"
9: 0x11: Const4 v4, 0x1 (1)
10: 0x12: NewArray v4, v4, java.lang.Class[]
11: 0x14: ConstClass v5, java.lang.String
12: 0x16: AputObject v5, v4, v2
13: 0x18: InvokeVirtual { v0 v3 v4 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
14: 0x1b: MoveResultObject v3
0x1c, line 343, locals: [0 -> closeGuardClass, 1 -> getMethod, 3 -> openMethod]
15: 0x1c: ConstString v4, "warnIfOpen"
16: 0x1e: NewArray v2, v2, java.lang.Class[]
17: 0x20: InvokeVirtual { v0 v4 v2 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
18: 0x23: MoveResultObject v2
19: 0x24: MoveObject v0, v2
0x25, line 348, locals: [0 -> warnIfOpenMethod, 1 -> getMethod, 3 -> openMethod]
20: 0x25: Goto 0x2a (+5)
0x26, line 344
21: 0x26: MoveException v0
0x27, line 345, locals: [0 -> ignored]
22: 0x27: Const4 v1, 0x0 (0)
0x28, line 346, locals: [0 -> ignored, 1 -> getMethod]
23: 0x28: Const4 v3, 0x0 (0)
0x29, line 347, locals: [0 -> ignored, 1 -> getMethod, 3 -> openMethod]
24: 0x29: Const4 v0, 0x0 (0)
0x2a, line 349, locals: [0 -> warnIfOpenMethod, 1 -> getMethod, 3 -> openMethod]
25: 0x2a: NewInstance v2, okhttp3.internal.platform.AndroidPlatform$CloseGuard
26: 0x2c: InvokeDirect { v2 v1 v3 v0 } Lokhttp3/internal/platform/AndroidPlatform$CloseGuard;-><init>(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
27: 0x2f: ReturnObject v2
Tries (numbers are offsets)
[0x02 .. 0x23] -> 0
Handlers (numbers are offsets)
0: [
java.lang.Exception -> 0x26
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: retrofit2.Platform retrofit2.Platform.findPlatform()
registers: 1, inputs: 0, outputs: 1
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 45
0: 0x00: DexItemBasedConstStringv0, "android.os.Build"
1: 0x02: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x05, line 46
2: 0x05: Sget v0, Field int android.os.Build$VERSION.SDK_INT
3: 0x07: IfEqz v0, 0x0f (+8)
0x09, line 47
4: 0x09: NewInstance v0, retrofit2.Platform$Android
5: 0x0b: InvokeDirect { v0 } Lretrofit2/Platform$Android;-><init>()V
6: 0x0e: ReturnObject v0
0x0f, line 50
7: 0x0f: Goto 0x11 (+2)
0x10, line 49
8: 0x10: MoveException v0
0x11, line 52
9: 0x11: DexItemBasedConstStringv0, "java.util.Optional"
10: 0x13: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x16, line 53
11: 0x16: NewInstance v0, retrofit2.Platform$Java8
12: 0x18: InvokeDirect { v0 } Lretrofit2/Platform$Java8;-><init>()V
13: 0x1b: ReturnObject v0
0x1c, line 54
14: 0x1c: MoveException v0
0x1d, line 56
15: 0x1d: NewInstance v0, retrofit2.Platform
16: 0x1f: InvokeDirect { v0 } Lretrofit2/Platform;-><init>()V
17: 0x22: ReturnObject v0
Tries (numbers are offsets)
[0x02 .. 0x0d] -> 0
[0x13 .. 0x1a] -> 1
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x10
]
1: [
java.lang.ClassNotFoundException -> 0x1c
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: okhttp3.internal.platform.Platform okhttp3.internal.platform.AndroidPlatform.buildIfSupported()
registers: 9, inputs: 0, outputs: 7
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 221
0: 0x00: DexItemBasedConstStringv0, "com.android.org.conscrypt.SSLParametersImpl"
1: 0x02: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
2: 0x05: MoveResultObject v2
0x06, line 222, locals: [2 -> sslParametersClass]
3: 0x06: DexItemBasedConstStringv0, "com.android.org.conscrypt.OpenSSLSocketImpl"
4: 0x08: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
5: 0x0b: MoveResultObject v0
0x0c, line 225, locals: [0 -> sslSocketClass, 2 -> sslParametersClass]
6: 0x0c: Nop
0x0d, line 226, locals: [0 -> sslSocketClass, 2 -> sslParametersClass]
7: 0x0d: Sget v1, Field int android.os.Build$VERSION.SDK_INT
8: 0x0f: Const16 v3, 0x0015 (21)
9: 0x11: IfLt v1, v3, 0x4a (+57)
0x13, line 228, locals: [0 -> sslSocketClass, 2 -> sslParametersClass]
10: 0x13: ConstString v1, "setUseSessionTickets"
11: 0x15: Const4 v3, 0x1 (1)
12: 0x16: NewArray v4, v3, java.lang.Class[]
13: 0x18: SgetObject v5, Field java.lang.Class java.lang.Boolean.TYPE
14: 0x1a: Const4 v7, 0x0 (0)
15: 0x1b: AputObject v5, v4, v7
16: 0x1d: InvokeVirtual { v0 v1 v4 } Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
17: 0x20: MoveResultObject v4
0x21, line 230, locals: [0 -> sslSocketClass, 2 -> sslParametersClass, 4 -> setUseSessionTickets]
18: 0x21: ConstString v1, "setHostname"
19: 0x23: NewArray v5, v3, java.lang.Class[]
20: 0x25: ConstClass v6, java.lang.String
21: 0x27: AputObject v6, v5, v7
22: 0x29: InvokeVirtual { v0 v1 v5 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
23: 0x2c: MoveResultObject v5
0x2d, line 231, locals: [0 -> sslSocketClass, 2 -> sslParametersClass, 4 -> setUseSessionTickets, 5 -> setHostname]
24: 0x2d: ConstString v1, "getAlpnSelectedProtocol"
25: 0x2f: NewArray v6, v7, java.lang.Class[]
26: 0x31: InvokeVirtual { v0 v1 v6 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
27: 0x34: MoveResultObject v6
0x35, line 232, locals: [0 -> sslSocketClass, 2 -> sslParametersClass, 4 -> setUseSessionTickets, 5 -> setHostname, 6 -> getAlpnSelectedProtocol]
28: 0x35: ConstString v1, "setAlpnProtocols"
29: 0x37: NewArray v3, v3, java.lang.Class[]
30: 0x39: ConstClass v8, byte[]
31: 0x3b: AputObject v8, v3, v7
32: 0x3d: InvokeVirtual { v0 v1 v3 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
33: 0x40: MoveResultObject v7
0x41, line 233, locals: [0 -> sslSocketClass, 2 -> sslParametersClass, 4 -> setUseSessionTickets, 5 -> setHostname, 6 -> getAlpnSelectedProtocol, 7 -> setAlpnProtocols]
34: 0x41: NewInstance v8, okhttp3.internal.platform.AndroidPlatform
35: 0x43: MoveObject v1, v8
36: 0x44: MoveObject v3, v0
37: 0x45: InvokeDirectRange { v1 .. v7 } Lokhttp3/internal/platform/AndroidPlatform;-><init>(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
38: 0x48: ReturnObject v8
0x49, line 235, locals: [0 -> sslSocketClass, 2 -> sslParametersClass]
39: 0x49: MoveException v1
0x4a, line 238, locals: [0 -> sslSocketClass, 2 -> sslParametersClass]
40: 0x4a: NewInstance v1, java.lang.IllegalStateException
41: 0x4c: NewInstance v3, java.lang.StringBuilder
42: 0x4e: InvokeDirect { v3 } Ljava/lang/StringBuilder;-><init>()V
43: 0x51: ConstString v4, "Expected Android API level 21+ but was "
44: 0x53: InvokeVirtual { v3 v4 } Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
45: 0x56: Sget v4, Field int android.os.Build$VERSION.SDK_INT
46: 0x58: InvokeVirtual { v3 v4 } Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
47: 0x5b: InvokeVirtual { v3 } Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
48: 0x5e: MoveResultObject v3
49: 0x5f: InvokeDirect { v1 v3 } Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
50: 0x62: Throw v1
0x63, line 223, locals: [0 -> sslSocketClass, 2 -> sslParametersClass]
0x63, line 223
51: 0x63: MoveException v0
0x64, line 224, locals: [0 -> ignored]
52: 0x64: Const4 v1, 0x0 (0)
53: 0x65: ReturnObject v1
Tries (numbers are offsets)
[0x02 .. 0x05] -> 0
[0x08 .. 0x0b] -> 0
[0x13 .. 0x47] -> 1
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x63
]
1: [
java.lang.NoSuchMethodException -> 0x49
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: okhttp3.internal.tls.CertificateChainCleaner okhttp3.internal.platform.AndroidPlatform.buildCertificateChainCleaner(javax.net.ssl.X509TrustManager)
registers: 10, inputs: 2, outputs: 3
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 205, locals: [8 -> this, 9 -> trustManager]
0: 0x00: DexItemBasedConstStringv0, "android.net.http.X509TrustManagerExtensions"
1: 0x02: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
2: 0x05: MoveResultObject v0
0x06, line 206, locals: [0 -> extensionsClass, 8 -> this, 9 -> trustManager]
3: 0x06: Const4 v1, 0x1 (1)
4: 0x07: NewArray v2, v1, java.lang.Class[]
5: 0x09: ConstClass v3, javax.net.ssl.X509TrustManager
6: 0x0b: Const4 v4, 0x0 (0)
7: 0x0c: AputObject v3, v2, v4
8: 0x0e: InvokeVirtual { v0 v2 } Ljava/lang/Class;->getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
9: 0x11: MoveResultObject v2
0x12, line 207, locals: [0 -> extensionsClass, 2 -> constructor, 8 -> this, 9 -> trustManager]
10: 0x12: NewArray v3, v1, java.lang.Object[]
11: 0x14: AputObject v9, v3, v4
12: 0x16: InvokeVirtual { v2 v3 } Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
13: 0x19: MoveResultObject v3
0x1a, line 208, locals: [0 -> extensionsClass, 2 -> constructor, 3 -> extensions, 8 -> this, 9 -> trustManager]
14: 0x1a: ConstString v5, "checkServerTrusted"
15: 0x1c: Const4 v6, 0x3 (3)
16: 0x1d: NewArray v6, v6, java.lang.Class[]
17: 0x1f: ConstClass v7, java.security.cert.X509Certificate[]
18: 0x21: AputObject v7, v6, v4
19: 0x23: ConstClass v4, java.lang.String
20: 0x25: AputObject v4, v6, v1
21: 0x27: Const4 v1, 0x2 (2)
22: 0x28: ConstClass v4, java.lang.String
23: 0x2a: AputObject v4, v6, v1
24: 0x2c: InvokeVirtual { v0 v5 v6 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
25: 0x2f: MoveResultObject v1
0x30, line 208, locals: [0 -> extensionsClass, 2 -> constructor, 3 -> extensions, 8 -> this, 9 -> trustManager]
0x30, line 210, locals: [0 -> extensionsClass, 1 -> checkServerTrusted, 2 -> constructor, 3 -> extensions, 8 -> this, 9 -> trustManager]
26: 0x30: NewInstance v4, okhttp3.internal.platform.AndroidPlatform$AndroidCertificateChainCleaner
27: 0x32: InvokeDirect { v4 v3 v1 } Lokhttp3/internal/platform/AndroidPlatform$AndroidCertificateChainCleaner;-><init>(Ljava/lang/Object;Ljava/lang/reflect/Method;)V
28: 0x35: ReturnObject v4
0x36, line 211, locals: [8 -> this, 9 -> trustManager]
29: 0x36: MoveException v0
0x37, line 212, locals: [0 -> e, 8 -> this, 9 -> trustManager]
30: 0x37: InvokeSuper { v8 v9 } Lokhttp3/internal/platform/Platform;->buildCertificateChainCleaner(Ljavax/net/ssl/X509TrustManager;)Lokhttp3/internal/tls/CertificateChainCleaner;
31: 0x3a: MoveResultObject v1
32: 0x3b: ReturnObject v1
Tries (numbers are offsets)
[0x02 .. 0x34] -> 0
Handlers (numbers are offsets)
0: [
java.lang.Exception -> 0x36
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: boolean okhttp3.internal.platform.AndroidPlatform.isCleartextTrafficPermitted(java.lang.String)
registers: 6, inputs: 2, outputs: 4
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 170, locals: [4 -> this, 5 -> hostname]
0: 0x00: DexItemBasedConstStringv0, "android.security.NetworkSecurityPolicy"
1: 0x02: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
2: 0x05: MoveResultObject v0
0x06, line 171, locals: [0 -> networkPolicyClass, 4 -> this, 5 -> hostname]
3: 0x06: ConstString v1, "getInstance"
4: 0x08: Const4 v2, 0x0 (0)
5: 0x09: NewArray v3, v2, java.lang.Class[]
6: 0x0b: InvokeVirtual { v0 v1 v3 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
7: 0x0e: MoveResultObject v1
0x0f, line 172, locals: [0 -> networkPolicyClass, 1 -> getInstanceMethod, 4 -> this, 5 -> hostname]
8: 0x0f: Const4 v3, 0x0 (0)
9: 0x10: NewArray v2, v2, java.lang.Object[]
10: 0x12: InvokeVirtual { v1 v3 v2 } Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
11: 0x15: MoveResultObject v2
0x16, line 173, locals: [0 -> networkPolicyClass, 1 -> getInstanceMethod, 2 -> networkSecurityPolicy, 4 -> this, 5 -> hostname]
12: 0x16: InvokeDirect { v4 v5 v0 v2 } Lokhttp3/internal/platform/AndroidPlatform;->api24IsCleartextTrafficPermitted(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Z
13: 0x19: MoveResult v3
14: 0x1a: Return v3
0x1b, line 176, locals: [4 -> this, 5 -> hostname]
15: 0x1b: MoveException v0
16: 0x1c: Goto 0x20 (+4)
17: 0x1d: MoveException v0
18: 0x1e: Goto 0x20 (+2)
19: 0x1f: MoveException v0
0x20, line 177, locals: [0 -> e, 4 -> this, 5 -> hostname]
20: 0x20: NewInstance v1, java.lang.AssertionError
21: 0x22: ConstString v2, "unable to determine cleartext support"
22: 0x24: InvokeDirect { v1 v2 v0 } Ljava/lang/AssertionError;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
23: 0x27: Throw v1
0x28, line 174, locals: [4 -> this, 5 -> hostname]
24: 0x28: MoveException v0
25: 0x29: Goto 0x2b (+2)
26: 0x2a: MoveException v0
0x2b, line 175, locals: [0 -> e, 4 -> this, 5 -> hostname]
27: 0x2b: InvokeSuper { v4 v5 } Lokhttp3/internal/platform/Platform;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
28: 0x2e: MoveResult v1
29: 0x2f: Return v1
Tries (numbers are offsets)
[0x02 .. 0x19] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x2a
java.lang.NoSuchMethodException -> 0x28
java.lang.IllegalAccessException -> 0x1f
java.lang.IllegalArgumentException -> 0x1d
java.lang.reflect.InvocationTargetException -> 0x1b
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: okhttp3.internal.platform.ConscryptPlatform okhttp3.internal.platform.ConscryptPlatform.buildIfSupported()
registers: 2, inputs: 0, outputs: 1
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 106
0: 0x00: DexItemBasedConstStringv0, "org.conscrypt.Conscrypt"
1: 0x02: Const4 v1, 0x0 (0)
2: 0x03: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x06, line 108
3: 0x06: InvokeStatic { } Lorg/conscrypt/Conscrypt;->isAvailable()Z
4: 0x09: MoveResult v0
5: 0x0a: IfNez v0, 0x0d (+3)
0x0c, line 109
6: 0x0c: ReturnObject v1
0x0d, line 112
7: 0x0d: NewInstance v0, okhttp3.internal.platform.ConscryptPlatform
8: 0x0f: InvokeDirect { v0 } Lokhttp3/internal/platform/ConscryptPlatform;-><init>()V
9: 0x12: ReturnObject v0
0x13, line 113
10: 0x13: MoveException v0
0x14, line 114, locals: [0 -> e]
11: 0x14: ReturnObject v1
Tries (numbers are offsets)
[0x03 .. 0x11] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x13
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: void org.acra.collector.MediaCodecListCollector.prepare()
registers: 11, inputs: 1, outputs: 3
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 94, locals: [10 -> this]
0: 0x00: DexItemBasedConstStringv0, "android.media.MediaCodecInfo$CodecCapabilities"
1: 0x02: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
2: 0x05: MoveResultObject v0
0x06, line 97, locals: [0 -> codecCapabilitiesClass, 10 -> this]
3: 0x06: InvokeVirtual { v0 } Ljava/lang/Class;->getFields()[Ljava/lang/reflect/Field;
4: 0x09: MoveResultObject v1
5: 0x0a: ArrayLength v2, v1
6: 0x0b: Const4 v3, 0x0 (0)
7: 0x0c: Const4 v4, 0x0 (0)
8: 0x0d: Const4 v5, 0x0 (0)
9: 0x0e: IfGe v4, v2, 0x42 (+52)
10: 0x10: AgetObject v6, v1, v4
0x12, line 98, locals: [0 -> codecCapabilitiesClass, 6 -> f, 10 -> this]
11: 0x12: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getModifiers()I
12: 0x15: MoveResult v7
13: 0x16: InvokeStatic { v7 } Ljava/lang/reflect/Modifier;->isStatic(I)Z
14: 0x19: MoveResult v7
15: 0x1a: IfEqz v7, 0x3f (+37)
16: 0x1c: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getModifiers()I
17: 0x1f: MoveResult v7
18: 0x20: InvokeStatic { v7 } Ljava/lang/reflect/Modifier;->isFinal(I)Z
19: 0x23: MoveResult v7
20: 0x24: IfEqz v7, 0x3f (+27)
0x26, line 98, locals: [0 -> codecCapabilitiesClass, 6 -> f, 10 -> this]
0x26, line 99, locals: [0 -> codecCapabilitiesClass, 6 -> f, 10 -> this]
21: 0x26: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
22: 0x29: MoveResultObject v7
23: 0x2a: ConstString v8, "COLOR_"
24: 0x2c: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
25: 0x2f: MoveResult v7
26: 0x30: IfEqz v7, 0x3f (+15)
0x32, line 100, locals: [0 -> codecCapabilitiesClass, 6 -> f, 10 -> this]
27: 0x32: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mColorFormatValues
28: 0x34: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
29: 0x37: MoveResult v5
30: 0x38: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
31: 0x3b: MoveResultObject v8
32: 0x3c: InvokeVirtual { v7 v5 v8 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
0x3f, line 97, locals: [0 -> codecCapabilitiesClass, 10 -> this]
33: 0x3f: AddIntLit8 v4, v4, #1
34: 0x41: Goto 0x0d (-52)
0x42, line 105, locals: [0 -> codecCapabilitiesClass, 10 -> this]
35: 0x42: DexItemBasedConstStringv1, "android.media.MediaCodecInfo$CodecProfileLevel"
36: 0x44: InvokeStatic { v1 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
37: 0x47: MoveResultObject v1
0x48, line 106, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 10 -> this]
38: 0x48: InvokeVirtual { v1 } Ljava/lang/Class;->getFields()[Ljava/lang/reflect/Field;
39: 0x4b: MoveResultObject v2
40: 0x4c: ArrayLength v4, v2
41: 0x4d: IfGe v3, v4, 0x120 (+211)
42: 0x4f: AgetObject v6, v2, v3
0x51, line 107, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
43: 0x51: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getModifiers()I
44: 0x54: MoveResult v7
45: 0x55: InvokeStatic { v7 } Ljava/lang/reflect/Modifier;->isStatic(I)Z
46: 0x58: MoveResult v7
47: 0x59: IfEqz v7, 0x11c (+195)
48: 0x5b: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getModifiers()I
49: 0x5e: MoveResult v7
50: 0x5f: InvokeStatic { v7 } Ljava/lang/reflect/Modifier;->isFinal(I)Z
51: 0x62: MoveResult v7
52: 0x63: IfEqz v7, 0x11c (+185)
0x65, line 107, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
0x65, line 108, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
53: 0x65: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
54: 0x68: MoveResultObject v7
55: 0x69: ConstString v8, "AVCLevel"
56: 0x6b: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
57: 0x6e: MoveResult v7
58: 0x6f: IfEqz v7, 0x80 (+17)
0x71, line 109, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
59: 0x71: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mAVCLevelValues
60: 0x73: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
61: 0x76: MoveResult v8
62: 0x77: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
63: 0x7a: MoveResultObject v9
64: 0x7b: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
65: 0x7e: Goto16 158 0x11c (+158)
0x80, line 110, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
66: 0x80: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
67: 0x83: MoveResultObject v7
68: 0x84: ConstString v8, "AVCProfile"
69: 0x86: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
70: 0x89: MoveResult v7
71: 0x8a: IfEqz v7, 0x9b (+17)
0x8c, line 111, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
72: 0x8c: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mAVCProfileValues
73: 0x8e: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
74: 0x91: MoveResult v8
75: 0x92: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
76: 0x95: MoveResultObject v9
77: 0x96: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
78: 0x99: Goto16 131 0x11c (+131)
0x9b, line 112, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
79: 0x9b: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
80: 0x9e: MoveResultObject v7
81: 0x9f: ConstString v8, "H263Level"
82: 0xa1: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
83: 0xa4: MoveResult v7
84: 0xa5: IfEqz v7, 0xb5 (+16)
0xa7, line 113, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
85: 0xa7: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mH263LevelValues
86: 0xa9: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
87: 0xac: MoveResult v8
88: 0xad: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
89: 0xb0: MoveResultObject v9
90: 0xb1: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
91: 0xb4: Goto 0x11c (+104)
0xb5, line 114, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
92: 0xb5: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
93: 0xb8: MoveResultObject v7
94: 0xb9: ConstString v8, "H263Profile"
95: 0xbb: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
96: 0xbe: MoveResult v7
97: 0xbf: IfEqz v7, 0xcf (+16)
0xc1, line 115, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
98: 0xc1: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mH263ProfileValues
99: 0xc3: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
100: 0xc6: MoveResult v8
101: 0xc7: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
102: 0xca: MoveResultObject v9
103: 0xcb: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
104: 0xce: Goto 0x11c (+78)
0xcf, line 116, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
105: 0xcf: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
106: 0xd2: MoveResultObject v7
107: 0xd3: ConstString v8, "MPEG4Level"
108: 0xd5: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
109: 0xd8: MoveResult v7
110: 0xd9: IfEqz v7, 0xe9 (+16)
0xdb, line 117, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
111: 0xdb: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mMPEG4LevelValues
112: 0xdd: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
113: 0xe0: MoveResult v8
114: 0xe1: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
115: 0xe4: MoveResultObject v9
116: 0xe5: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
117: 0xe8: Goto 0x11c (+52)
0xe9, line 118, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
118: 0xe9: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
119: 0xec: MoveResultObject v7
120: 0xed: ConstString v8, "MPEG4Profile"
121: 0xef: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
122: 0xf2: MoveResult v7
123: 0xf3: IfEqz v7, 0x103 (+16)
0xf5, line 119, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
124: 0xf5: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mMPEG4ProfileValues
125: 0xf7: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
126: 0xfa: MoveResult v8
127: 0xfb: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
128: 0xfe: MoveResultObject v9
129: 0xff: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
130: 0x102: Goto 0x11c (+26)
0x103, line 120, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
131: 0x103: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
132: 0x106: MoveResultObject v7
133: 0x107: ConstString v8, "AAC"
134: 0x109: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
135: 0x10c: MoveResult v7
136: 0x10d: IfEqz v7, 0x11c (+15)
0x10f, line 121, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
137: 0x10f: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mAACProfileValues
138: 0x111: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
139: 0x114: MoveResult v8
140: 0x115: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
141: 0x118: MoveResultObject v9
142: 0x119: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
0x11c, line 106, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 10 -> this]
143: 0x11c: AddIntLit8 v3, v3, #1
144: 0x11e: Goto16 -209 0x4d (-209)
0x120, line 106, locals: [10 -> this]
145: 0x120: Goto 0x128 (+8)
0x121, line 131, locals: [10 -> this]
146: 0x121: MoveException v0
147: 0x122: Goto 0x129 (+7)
0x123, line 129, locals: [10 -> this]
148: 0x123: MoveException v0
149: 0x124: Goto 0x128 (+4)
0x125, line 127, locals: [10 -> this]
150: 0x125: MoveException v0
151: 0x126: Goto 0x128 (+2)
0x127, line 125, locals: [10 -> this]
152: 0x127: MoveException v0
0x128, line 133, locals: [10 -> this]
153: 0x128: Nop
0x129, line 135, locals: [10 -> this]
154: 0x129: ReturnVoid
Tries (numbers are offsets)
[0x02 .. 0x3e] -> 0
[0x44 .. 0x11b] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x127
java.lang.SecurityException -> 0x125
java.lang.IllegalAccessException -> 0x123
java.lang.IllegalArgumentException -> 0x121
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: boolean com.urbanairship.messagecenter.ThemedActivity.isAppCompatAvailable(android.app.Activity)
registers: 7, inputs: 1, outputs: 4
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 179, locals: [6 -> activity]
0: 0x00: SgetObject v0, Field java.lang.Boolean com.urbanairship.messagecenter.ThemedActivity.isAppCompatDependencyAvailable
1: 0x02: Const4 v1, 0x1 (1)
2: 0x03: Const4 v2, 0x0 (0)
3: 0x04: IfNez v0, 0x19 (+21)
0x06, line 182, locals: [6 -> activity]
4: 0x06: DexItemBasedConstStringv0, "androidx.appcompat.app.AppCompatDelegate"
5: 0x08: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x0b, line 183, locals: [6 -> activity]
6: 0x0b: InvokeStatic { v1 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
7: 0x0e: MoveResultObject v0
8: 0x0f: SputObject v0, Field java.lang.Boolean com.urbanairship.messagecenter.ThemedActivity.isAppCompatDependencyAvailable
0x11, line 186, locals: [6 -> activity]
9: 0x11: Goto 0x19 (+8)
0x12, line 184, locals: [6 -> activity]
10: 0x12: MoveException v0
0x13, line 185, locals: [0 -> e, 6 -> activity]
11: 0x13: InvokeStatic { v2 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
12: 0x16: MoveResultObject v3
13: 0x17: SputObject v3, Field java.lang.Boolean com.urbanairship.messagecenter.ThemedActivity.isAppCompatDependencyAvailable
0x19, line 189, locals: [6 -> activity]
14: 0x19: SgetObject v0, Field java.lang.Boolean com.urbanairship.messagecenter.ThemedActivity.isAppCompatDependencyAvailable
15: 0x1b: InvokeVirtual { v0 } Ljava/lang/Boolean;->booleanValue()Z
16: 0x1e: MoveResult v0
17: 0x1f: IfNez v0, 0x22 (+3)
0x21, line 190, locals: [6 -> activity]
18: 0x21: Return v2
0x22, line 193, locals: [6 -> activity]
19: 0x22: InvokeVirtual { v6 } Landroid/app/Activity;->getResources()Landroid/content/res/Resources;
20: 0x25: MoveResultObject v0
21: 0x26: InvokeVirtual { v6 } Landroid/app/Activity;->getPackageName()Ljava/lang/String;
22: 0x29: MoveResultObject v3
23: 0x2a: ConstString v4, "colorPrimary"
24: 0x2c: ConstString v5, "attr"
25: 0x2e: InvokeVirtual { v0 v4 v5 v3 } Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
26: 0x31: MoveResult v0
0x32, line 194, locals: [0 -> colorPrimary, 6 -> activity]
27: 0x32: IfNez v0, 0x35 (+3)
0x34, line 195, locals: [0 -> colorPrimary, 6 -> activity]
28: 0x34: Return v2
0x35, line 198, locals: [0 -> colorPrimary, 6 -> activity]
29: 0x35: NewArray v1, v1, int[]
30: 0x37: Aput v0, v1, v2
31: 0x39: InvokeVirtual { v6 v1 } Landroid/app/Activity;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;
32: 0x3c: MoveResultObject v1
0x3d, line 199, locals: [0 -> colorPrimary, 1 -> a, 6 -> activity]
33: 0x3d: InvokeVirtual { v1 v2 } Landroid/content/res/TypedArray;->hasValue(I)Z
34: 0x40: MoveResult v2
0x41, line 200, locals: [0 -> colorPrimary, 1 -> a, 2 -> isAvailable, 6 -> activity]
35: 0x41: InvokeVirtual { v1 } Landroid/content/res/TypedArray;->recycle()V
0x44, line 202, locals: [0 -> colorPrimary, 1 -> a, 2 -> isAvailable, 6 -> activity]
36: 0x44: Return v2
Tries (numbers are offsets)
[0x08 .. 0x10] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x12
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: boolean com.urbanairship.google.PlayServicesUtils.isFusedLocationDependencyAvailable()
registers: 2, inputs: 0, outputs: 1
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 154
0: 0x00: SgetObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isFusedLocationDependencyAvailable
1: 0x02: IfNez v0, 0x26 (+36)
0x04, line 155
2: 0x04: InvokeStatic { } Lcom/urbanairship/google/PlayServicesUtils;->isGooglePlayServicesDependencyAvailable()Z
3: 0x07: MoveResult v0
4: 0x08: Const4 v1, 0x0 (0)
5: 0x09: IfNez v0, 0x12 (+9)
0x0b, line 156
6: 0x0b: InvokeStatic { v1 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
7: 0x0e: MoveResultObject v0
8: 0x0f: SputObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isFusedLocationDependencyAvailable
9: 0x11: Goto 0x26 (+21)
0x12, line 159
10: 0x12: DexItemBasedConstStringv0, "com.google.android.gms.location.FusedLocationProviderClient"
11: 0x14: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x17, line 160
12: 0x17: Const4 v0, 0x1 (1)
13: 0x18: InvokeStatic { v0 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
14: 0x1b: MoveResultObject v0
15: 0x1c: SputObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isFusedLocationDependencyAvailable
0x1e, line 163
16: 0x1e: Goto 0x26 (+8)
0x1f, line 161
17: 0x1f: MoveException v0
0x20, line 162, locals: [0 -> e]
18: 0x20: InvokeStatic { v1 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
19: 0x23: MoveResultObject v1
20: 0x24: SputObject v1, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isFusedLocationDependencyAvailable
0x26, line 167
21: 0x26: SgetObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isFusedLocationDependencyAvailable
22: 0x28: InvokeVirtual { v0 } Ljava/lang/Boolean;->booleanValue()Z
23: 0x2b: MoveResult v0
24: 0x2c: Return v0
Tries (numbers are offsets)
[0x14 .. 0x1d] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x1f
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: boolean com.urbanairship.google.PlayServicesUtils.isGoogleAdsDependencyAvailable()
registers: 2, inputs: 0, outputs: 1
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 177
0: 0x00: SgetObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGoogleAdsDependencyAvailable
1: 0x02: IfNez v0, 0x26 (+36)
0x04, line 178
2: 0x04: InvokeStatic { } Lcom/urbanairship/google/PlayServicesUtils;->isGooglePlayServicesDependencyAvailable()Z
3: 0x07: MoveResult v0
4: 0x08: Const4 v1, 0x0 (0)
5: 0x09: IfNez v0, 0x12 (+9)
0x0b, line 179
6: 0x0b: InvokeStatic { v1 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
7: 0x0e: MoveResultObject v0
8: 0x0f: SputObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGoogleAdsDependencyAvailable
9: 0x11: Goto 0x26 (+21)
0x12, line 182
10: 0x12: DexItemBasedConstStringv0, "com.google.android.gms.ads.identifier.AdvertisingIdClient"
11: 0x14: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x17, line 183
12: 0x17: Const4 v0, 0x1 (1)
13: 0x18: InvokeStatic { v0 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
14: 0x1b: MoveResultObject v0
15: 0x1c: SputObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGoogleAdsDependencyAvailable
0x1e, line 186
16: 0x1e: Goto 0x26 (+8)
0x1f, line 184
17: 0x1f: MoveException v0
0x20, line 185, locals: [0 -> e]
18: 0x20: InvokeStatic { v1 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
19: 0x23: MoveResultObject v1
20: 0x24: SputObject v1, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGoogleAdsDependencyAvailable
0x26, line 190
21: 0x26: SgetObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGoogleAdsDependencyAvailable
22: 0x28: InvokeVirtual { v0 } Ljava/lang/Boolean;->booleanValue()Z
23: 0x2b: MoveResult v0
24: 0x2c: Return v0
Tries (numbers are offsets)
[0x14 .. 0x1d] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x1f
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: boolean com.urbanairship.google.PlayServicesUtils.isGooglePlayServicesDependencyAvailable()
registers: 2, inputs: 0, outputs: 1
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 110
0: 0x00: SgetObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGooglePlayServicesDependencyAvailable
1: 0x02: IfNez v0, 0x19 (+23)
0x04, line 113
2: 0x04: DexItemBasedConstStringv0, "com.google.android.gms.common.GooglePlayServicesUtil"
3: 0x06: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x09, line 114
4: 0x09: Const4 v0, 0x1 (1)
5: 0x0a: InvokeStatic { v0 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
6: 0x0d: MoveResultObject v0
7: 0x0e: SputObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGooglePlayServicesDependencyAvailable
0x10, line 117
8: 0x10: Goto 0x19 (+9)
0x11, line 115
9: 0x11: MoveException v0
0x12, line 116, locals: [0 -> e]
10: 0x12: Const4 v1, 0x0 (0)
11: 0x13: InvokeStatic { v1 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
12: 0x16: MoveResultObject v1
13: 0x17: SputObject v1, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGooglePlayServicesDependencyAvailable
0x19, line 120
14: 0x19: SgetObject v0, Field java.lang.Boolean com.urbanairship.google.PlayServicesUtils.isGooglePlayServicesDependencyAvailable
15: 0x1b: InvokeVirtual { v0 } Ljava/lang/Boolean;->booleanValue()Z
16: 0x1e: MoveResult v0
17: 0x1f: Return v0
Tries (numbers are offsets)
[0x06 .. 0x0f] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x11
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: void okhttp3.internal.Util.<clinit>()
registers: 5, inputs: 0, outputs: 3
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 65
0: 0x00: Const4 v0, 0x0 (0)
1: 0x01: NewArray v1, v0, byte[]
2: 0x03: SputObject v1, Field byte[] okhttp3.internal.Util.EMPTY_BYTE_ARRAY
0x05, line 66
3: 0x05: NewArray v1, v0, java.lang.String[]
4: 0x07: SputObject v1, Field java.lang.String[] okhttp3.internal.Util.EMPTY_STRING_ARRAY
0x09, line 67
5: 0x09: NewArray v1, v0, java.lang.String[]
6: 0x0b: InvokeStatic { v1 } Lokhttp3/Headers;->of([Ljava/lang/String;)Lokhttp3/Headers;
7: 0x0e: MoveResultObject v1
8: 0x0f: SputObject v1, Field okhttp3.Headers okhttp3.internal.Util.EMPTY_HEADERS
0x11, line 69
9: 0x11: SgetObject v1, Field byte[] okhttp3.internal.Util.EMPTY_BYTE_ARRAY
10: 0x13: Const4 v2, 0x0 (0)
11: 0x14: InvokeStatic { v2 v1 } Lokhttp3/ResponseBody;->create(Lokhttp3/MediaType;[B)Lokhttp3/ResponseBody;
12: 0x17: MoveResultObject v1
13: 0x18: SputObject v1, Field okhttp3.ResponseBody okhttp3.internal.Util.EMPTY_RESPONSE
0x1a, line 70
14: 0x1a: SgetObject v1, Field byte[] okhttp3.internal.Util.EMPTY_BYTE_ARRAY
15: 0x1c: InvokeStatic { v2 v1 } Lokhttp3/RequestBody;->create(Lokhttp3/MediaType;[B)Lokhttp3/RequestBody;
16: 0x1f: MoveResultObject v1
17: 0x20: SputObject v1, Field okhttp3.RequestBody okhttp3.internal.Util.EMPTY_REQUEST
0x22, line 73
18: 0x22: Const4 v1, 0x5 (5)
19: 0x23: NewArray v1, v1, okio.ByteString[]
0x25, line 74
20: 0x25: ConstString v2, "efbbbf"
21: 0x27: InvokeStatic { v2 } Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
22: 0x2a: MoveResultObject v2
23: 0x2b: AputObject v2, v1, v0
0x2d, line 75
24: 0x2d: ConstString v2, "feff"
25: 0x2f: InvokeStatic { v2 } Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
26: 0x32: MoveResultObject v2
27: 0x33: Const4 v3, 0x1 (1)
28: 0x34: AputObject v2, v1, v3
0x36, line 76
29: 0x36: ConstString v2, "fffe"
30: 0x38: InvokeStatic { v2 } Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
31: 0x3b: MoveResultObject v2
32: 0x3c: Const4 v4, 0x2 (2)
33: 0x3d: AputObject v2, v1, v4
0x3f, line 77
34: 0x3f: ConstString v2, "0000ffff"
35: 0x41: InvokeStatic { v2 } Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
36: 0x44: MoveResultObject v2
37: 0x45: Const4 v4, 0x3 (3)
38: 0x46: AputObject v2, v1, v4
0x48, line 78
39: 0x48: ConstString v2, "ffff0000"
40: 0x4a: InvokeStatic { v2 } Lokio/ByteString;->decodeHex(Ljava/lang/String;)Lokio/ByteString;
41: 0x4d: MoveResultObject v2
42: 0x4e: Const4 v4, 0x4 (4)
43: 0x4f: AputObject v2, v1, v4
0x51, line 73
44: 0x51: InvokeStatic { v1 } Lokio/Options;->of([Lokio/ByteString;)Lokio/Options;
45: 0x54: MoveResultObject v1
46: 0x55: SputObject v1, Field okio.Options okhttp3.internal.Util.UNICODE_BOMS
0x57, line 81
47: 0x57: ConstString v1, "UTF-32BE"
48: 0x59: InvokeStatic { v1 } Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
49: 0x5c: MoveResultObject v1
50: 0x5d: SputObject v1, Field java.nio.charset.Charset okhttp3.internal.Util.UTF_32BE
0x5f, line 82
51: 0x5f: ConstString v1, "UTF-32LE"
52: 0x61: InvokeStatic { v1 } Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
53: 0x64: MoveResultObject v1
54: 0x65: SputObject v1, Field java.nio.charset.Charset okhttp3.internal.Util.UTF_32LE
0x67, line 85
55: 0x67: ConstString v1, "GMT"
56: 0x69: InvokeStatic { v1 } Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
57: 0x6c: MoveResultObject v1
58: 0x6d: SputObject v1, Field java.util.TimeZone okhttp3.internal.Util.UTC
0x6f, line 87
59: 0x6f: SgetObject v1, Field okhttp3.internal.-$$Lambda$TEfSBt3hRUlBSSARfPEHsJesTtE okhttp3.internal.-$$Lambda$TEfSBt3hRUlBSSARfPEHsJesTtE.INSTANCE
60: 0x71: SputObject v1, Field java.util.Comparator okhttp3.internal.Util.NATURAL_ORDER
0x73, line 94
61: 0x73: ConstClass v1, java.lang.Throwable
62: 0x75: NewArray v2, v3, java.lang.Class[]
63: 0x77: ConstClass v3, java.lang.Throwable
64: 0x79: AputObject v3, v2, v0
65: 0x7b: DexItemBasedConstStringv0, "Method java.lang.Throwable.addSuppressed Proto VL void java.lang.Throwable"
66: 0x7d: InvokeVirtual { v1 v0 v2 } Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
67: 0x80: MoveResultObject v0
0x81, line 97, locals: [0 -> m]
68: 0x81: Goto 0x84 (+3)
0x82, line 95
69: 0x82: MoveException v0
0x83, line 96, locals: [0 -> e]
70: 0x83: Const4 v0, 0x0 (0)
0x84, line 98, locals: [0 -> m]
71: 0x84: SputObject v0, Field java.lang.reflect.Method okhttp3.internal.Util.addSuppressedExceptionMethod
0x86, line 120
72: 0x86: ConstString v0, "([0-9a-fA-F]*:[0-9a-fA-F:.]*)|([\d.]+)"
73: 0x88: InvokeStatic { v0 } Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
74: 0x8b: MoveResultObject v0
75: 0x8c: SputObject v0, Field java.util.regex.Pattern okhttp3.internal.Util.VERIFY_AS_IP_ADDRESS
76: 0x8e: ReturnVoid
Tries (numbers are offsets)
[0x73 .. 0x7a] -> 0
[0x7d .. 0x80] -> 0
Handlers (numbers are offsets)
0: [
java.lang.Exception -> 0x82
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: okhttp3.internal.platform.AndroidPlatform$CloseGuard okhttp3.internal.platform.AndroidPlatform$CloseGuard.get()
registers: 6, inputs: 0, outputs: 4
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 340
0: 0x00: DexItemBasedConstStringv0, "dalvik.system.CloseGuard"
1: 0x02: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
2: 0x05: MoveResultObject v0
0x06, line 341, locals: [0 -> closeGuardClass]
3: 0x06: ConstString v1, "get"
4: 0x08: Const4 v2, 0x0 (0)
5: 0x09: NewArray v3, v2, java.lang.Class[]
6: 0x0b: InvokeVirtual { v0 v1 v3 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
7: 0x0e: MoveResultObject v1
0x0f, line 342, locals: [0 -> closeGuardClass, 1 -> getMethod]
8: 0x0f: ConstString v3, "open"
9: 0x11: Const4 v4, 0x1 (1)
10: 0x12: NewArray v4, v4, java.lang.Class[]
11: 0x14: ConstClass v5, java.lang.String
12: 0x16: AputObject v5, v4, v2
13: 0x18: InvokeVirtual { v0 v3 v4 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
14: 0x1b: MoveResultObject v3
0x1c, line 343, locals: [0 -> closeGuardClass, 1 -> getMethod, 3 -> openMethod]
15: 0x1c: ConstString v4, "warnIfOpen"
16: 0x1e: NewArray v2, v2, java.lang.Class[]
17: 0x20: InvokeVirtual { v0 v4 v2 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
18: 0x23: MoveResultObject v2
19: 0x24: MoveObject v0, v2
0x25, line 348, locals: [0 -> warnIfOpenMethod, 1 -> getMethod, 3 -> openMethod]
20: 0x25: Goto 0x2a (+5)
0x26, line 344
21: 0x26: MoveException v0
0x27, line 345, locals: [0 -> ignored]
22: 0x27: Const4 v1, 0x0 (0)
0x28, line 346, locals: [0 -> ignored, 1 -> getMethod]
23: 0x28: Const4 v3, 0x0 (0)
0x29, line 347, locals: [0 -> ignored, 1 -> getMethod, 3 -> openMethod]
24: 0x29: Const4 v0, 0x0 (0)
0x2a, line 349, locals: [0 -> warnIfOpenMethod, 1 -> getMethod, 3 -> openMethod]
25: 0x2a: NewInstance v2, okhttp3.internal.platform.AndroidPlatform$CloseGuard
26: 0x2c: InvokeDirect { v2 v1 v3 v0 } Lokhttp3/internal/platform/AndroidPlatform$CloseGuard;-><init>(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
27: 0x2f: ReturnObject v2
Tries (numbers are offsets)
[0x02 .. 0x23] -> 0
Handlers (numbers are offsets)
0: [
java.lang.Exception -> 0x26
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: retrofit2.Platform retrofit2.Platform.findPlatform()
registers: 1, inputs: 0, outputs: 1
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 45
0: 0x00: DexItemBasedConstStringv0, "android.os.Build"
1: 0x02: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x05, line 46
2: 0x05: Sget v0, Field int android.os.Build$VERSION.SDK_INT
3: 0x07: IfEqz v0, 0x0f (+8)
0x09, line 47
4: 0x09: NewInstance v0, retrofit2.Platform$Android
5: 0x0b: InvokeDirect { v0 } Lretrofit2/Platform$Android;-><init>()V
6: 0x0e: ReturnObject v0
0x0f, line 50
7: 0x0f: Goto 0x11 (+2)
0x10, line 49
8: 0x10: MoveException v0
0x11, line 52
9: 0x11: DexItemBasedConstStringv0, "java.util.Optional"
10: 0x13: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x16, line 53
11: 0x16: NewInstance v0, retrofit2.Platform$Java8
12: 0x18: InvokeDirect { v0 } Lretrofit2/Platform$Java8;-><init>()V
13: 0x1b: ReturnObject v0
0x1c, line 54
14: 0x1c: MoveException v0
0x1d, line 56
15: 0x1d: NewInstance v0, retrofit2.Platform
16: 0x1f: InvokeDirect { v0 } Lretrofit2/Platform;-><init>()V
17: 0x22: ReturnObject v0
Tries (numbers are offsets)
[0x02 .. 0x0d] -> 0
[0x13 .. 0x1a] -> 1
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x10
]
1: [
java.lang.ClassNotFoundException -> 0x1c
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: okhttp3.internal.platform.Platform okhttp3.internal.platform.AndroidPlatform.buildIfSupported()
registers: 9, inputs: 0, outputs: 7
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 221
0: 0x00: DexItemBasedConstStringv0, "com.android.org.conscrypt.SSLParametersImpl"
1: 0x02: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
2: 0x05: MoveResultObject v2
0x06, line 222, locals: [2 -> sslParametersClass]
3: 0x06: DexItemBasedConstStringv0, "com.android.org.conscrypt.OpenSSLSocketImpl"
4: 0x08: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
5: 0x0b: MoveResultObject v0
0x0c, line 225, locals: [0 -> sslSocketClass, 2 -> sslParametersClass]
6: 0x0c: Nop
0x0d, line 226, locals: [0 -> sslSocketClass, 2 -> sslParametersClass]
7: 0x0d: Sget v1, Field int android.os.Build$VERSION.SDK_INT
8: 0x0f: Const16 v3, 0x0015 (21)
9: 0x11: IfLt v1, v3, 0x4a (+57)
0x13, line 228, locals: [0 -> sslSocketClass, 2 -> sslParametersClass]
10: 0x13: ConstString v1, "setUseSessionTickets"
11: 0x15: Const4 v3, 0x1 (1)
12: 0x16: NewArray v4, v3, java.lang.Class[]
13: 0x18: SgetObject v5, Field java.lang.Class java.lang.Boolean.TYPE
14: 0x1a: Const4 v7, 0x0 (0)
15: 0x1b: AputObject v5, v4, v7
16: 0x1d: InvokeVirtual { v0 v1 v4 } Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
17: 0x20: MoveResultObject v4
0x21, line 230, locals: [0 -> sslSocketClass, 2 -> sslParametersClass, 4 -> setUseSessionTickets]
18: 0x21: ConstString v1, "setHostname"
19: 0x23: NewArray v5, v3, java.lang.Class[]
20: 0x25: ConstClass v6, java.lang.String
21: 0x27: AputObject v6, v5, v7
22: 0x29: InvokeVirtual { v0 v1 v5 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
23: 0x2c: MoveResultObject v5
0x2d, line 231, locals: [0 -> sslSocketClass, 2 -> sslParametersClass, 4 -> setUseSessionTickets, 5 -> setHostname]
24: 0x2d: ConstString v1, "getAlpnSelectedProtocol"
25: 0x2f: NewArray v6, v7, java.lang.Class[]
26: 0x31: InvokeVirtual { v0 v1 v6 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
27: 0x34: MoveResultObject v6
0x35, line 232, locals: [0 -> sslSocketClass, 2 -> sslParametersClass, 4 -> setUseSessionTickets, 5 -> setHostname, 6 -> getAlpnSelectedProtocol]
28: 0x35: ConstString v1, "setAlpnProtocols"
29: 0x37: NewArray v3, v3, java.lang.Class[]
30: 0x39: ConstClass v8, byte[]
31: 0x3b: AputObject v8, v3, v7
32: 0x3d: InvokeVirtual { v0 v1 v3 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
33: 0x40: MoveResultObject v7
0x41, line 233, locals: [0 -> sslSocketClass, 2 -> sslParametersClass, 4 -> setUseSessionTickets, 5 -> setHostname, 6 -> getAlpnSelectedProtocol, 7 -> setAlpnProtocols]
34: 0x41: NewInstance v8, okhttp3.internal.platform.AndroidPlatform
35: 0x43: MoveObject v1, v8
36: 0x44: MoveObject v3, v0
37: 0x45: InvokeDirectRange { v1 .. v7 } Lokhttp3/internal/platform/AndroidPlatform;-><init>(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
38: 0x48: ReturnObject v8
0x49, line 235, locals: [0 -> sslSocketClass, 2 -> sslParametersClass]
39: 0x49: MoveException v1
0x4a, line 238, locals: [0 -> sslSocketClass, 2 -> sslParametersClass]
40: 0x4a: NewInstance v1, java.lang.IllegalStateException
41: 0x4c: NewInstance v3, java.lang.StringBuilder
42: 0x4e: InvokeDirect { v3 } Ljava/lang/StringBuilder;-><init>()V
43: 0x51: ConstString v4, "Expected Android API level 21+ but was "
44: 0x53: InvokeVirtual { v3 v4 } Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
45: 0x56: Sget v4, Field int android.os.Build$VERSION.SDK_INT
46: 0x58: InvokeVirtual { v3 v4 } Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
47: 0x5b: InvokeVirtual { v3 } Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
48: 0x5e: MoveResultObject v3
49: 0x5f: InvokeDirect { v1 v3 } Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
50: 0x62: Throw v1
0x63, line 223, locals: [0 -> sslSocketClass, 2 -> sslParametersClass]
0x63, line 223
51: 0x63: MoveException v0
0x64, line 224, locals: [0 -> ignored]
52: 0x64: Const4 v1, 0x0 (0)
53: 0x65: ReturnObject v1
Tries (numbers are offsets)
[0x02 .. 0x05] -> 0
[0x08 .. 0x0b] -> 0
[0x13 .. 0x47] -> 1
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x63
]
1: [
java.lang.NoSuchMethodException -> 0x49
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: okhttp3.internal.tls.CertificateChainCleaner okhttp3.internal.platform.AndroidPlatform.buildCertificateChainCleaner(javax.net.ssl.X509TrustManager)
registers: 10, inputs: 2, outputs: 3
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 205, locals: [8 -> this, 9 -> trustManager]
0: 0x00: DexItemBasedConstStringv0, "android.net.http.X509TrustManagerExtensions"
1: 0x02: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
2: 0x05: MoveResultObject v0
0x06, line 206, locals: [0 -> extensionsClass, 8 -> this, 9 -> trustManager]
3: 0x06: Const4 v1, 0x1 (1)
4: 0x07: NewArray v2, v1, java.lang.Class[]
5: 0x09: ConstClass v3, javax.net.ssl.X509TrustManager
6: 0x0b: Const4 v4, 0x0 (0)
7: 0x0c: AputObject v3, v2, v4
8: 0x0e: InvokeVirtual { v0 v2 } Ljava/lang/Class;->getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
9: 0x11: MoveResultObject v2
0x12, line 207, locals: [0 -> extensionsClass, 2 -> constructor, 8 -> this, 9 -> trustManager]
10: 0x12: NewArray v3, v1, java.lang.Object[]
11: 0x14: AputObject v9, v3, v4
12: 0x16: InvokeVirtual { v2 v3 } Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
13: 0x19: MoveResultObject v3
0x1a, line 208, locals: [0 -> extensionsClass, 2 -> constructor, 3 -> extensions, 8 -> this, 9 -> trustManager]
14: 0x1a: ConstString v5, "checkServerTrusted"
15: 0x1c: Const4 v6, 0x3 (3)
16: 0x1d: NewArray v6, v6, java.lang.Class[]
17: 0x1f: ConstClass v7, java.security.cert.X509Certificate[]
18: 0x21: AputObject v7, v6, v4
19: 0x23: ConstClass v4, java.lang.String
20: 0x25: AputObject v4, v6, v1
21: 0x27: Const4 v1, 0x2 (2)
22: 0x28: ConstClass v4, java.lang.String
23: 0x2a: AputObject v4, v6, v1
24: 0x2c: InvokeVirtual { v0 v5 v6 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
25: 0x2f: MoveResultObject v1
0x30, line 208, locals: [0 -> extensionsClass, 2 -> constructor, 3 -> extensions, 8 -> this, 9 -> trustManager]
0x30, line 210, locals: [0 -> extensionsClass, 1 -> checkServerTrusted, 2 -> constructor, 3 -> extensions, 8 -> this, 9 -> trustManager]
26: 0x30: NewInstance v4, okhttp3.internal.platform.AndroidPlatform$AndroidCertificateChainCleaner
27: 0x32: InvokeDirect { v4 v3 v1 } Lokhttp3/internal/platform/AndroidPlatform$AndroidCertificateChainCleaner;-><init>(Ljava/lang/Object;Ljava/lang/reflect/Method;)V
28: 0x35: ReturnObject v4
0x36, line 211, locals: [8 -> this, 9 -> trustManager]
29: 0x36: MoveException v0
0x37, line 212, locals: [0 -> e, 8 -> this, 9 -> trustManager]
30: 0x37: InvokeSuper { v8 v9 } Lokhttp3/internal/platform/Platform;->buildCertificateChainCleaner(Ljavax/net/ssl/X509TrustManager;)Lokhttp3/internal/tls/CertificateChainCleaner;
31: 0x3a: MoveResultObject v1
32: 0x3b: ReturnObject v1
Tries (numbers are offsets)
[0x02 .. 0x34] -> 0
Handlers (numbers are offsets)
0: [
java.lang.Exception -> 0x36
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: boolean okhttp3.internal.platform.AndroidPlatform.isCleartextTrafficPermitted(java.lang.String)
registers: 6, inputs: 2, outputs: 4
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 170, locals: [4 -> this, 5 -> hostname]
0: 0x00: DexItemBasedConstStringv0, "android.security.NetworkSecurityPolicy"
1: 0x02: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
2: 0x05: MoveResultObject v0
0x06, line 171, locals: [0 -> networkPolicyClass, 4 -> this, 5 -> hostname]
3: 0x06: ConstString v1, "getInstance"
4: 0x08: Const4 v2, 0x0 (0)
5: 0x09: NewArray v3, v2, java.lang.Class[]
6: 0x0b: InvokeVirtual { v0 v1 v3 } Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
7: 0x0e: MoveResultObject v1
0x0f, line 172, locals: [0 -> networkPolicyClass, 1 -> getInstanceMethod, 4 -> this, 5 -> hostname]
8: 0x0f: Const4 v3, 0x0 (0)
9: 0x10: NewArray v2, v2, java.lang.Object[]
10: 0x12: InvokeVirtual { v1 v3 v2 } Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
11: 0x15: MoveResultObject v2
0x16, line 173, locals: [0 -> networkPolicyClass, 1 -> getInstanceMethod, 2 -> networkSecurityPolicy, 4 -> this, 5 -> hostname]
12: 0x16: InvokeDirect { v4 v5 v0 v2 } Lokhttp3/internal/platform/AndroidPlatform;->api24IsCleartextTrafficPermitted(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Z
13: 0x19: MoveResult v3
14: 0x1a: Return v3
0x1b, line 176, locals: [4 -> this, 5 -> hostname]
15: 0x1b: MoveException v0
16: 0x1c: Goto 0x20 (+4)
17: 0x1d: MoveException v0
18: 0x1e: Goto 0x20 (+2)
19: 0x1f: MoveException v0
0x20, line 177, locals: [0 -> e, 4 -> this, 5 -> hostname]
20: 0x20: NewInstance v1, java.lang.AssertionError
21: 0x22: ConstString v2, "unable to determine cleartext support"
22: 0x24: InvokeDirect { v1 v2 v0 } Ljava/lang/AssertionError;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
23: 0x27: Throw v1
0x28, line 174, locals: [4 -> this, 5 -> hostname]
24: 0x28: MoveException v0
25: 0x29: Goto 0x2b (+2)
26: 0x2a: MoveException v0
0x2b, line 175, locals: [0 -> e, 4 -> this, 5 -> hostname]
27: 0x2b: InvokeSuper { v4 v5 } Lokhttp3/internal/platform/Platform;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
28: 0x2e: MoveResult v1
29: 0x2f: Return v1
Tries (numbers are offsets)
[0x02 .. 0x19] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x2a
java.lang.NoSuchMethodException -> 0x28
java.lang.IllegalAccessException -> 0x1f
java.lang.IllegalArgumentException -> 0x1d
java.lang.reflect.InvocationTargetException -> 0x1b
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: okhttp3.internal.platform.ConscryptPlatform okhttp3.internal.platform.ConscryptPlatform.buildIfSupported()
registers: 2, inputs: 0, outputs: 1
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 106
0: 0x00: DexItemBasedConstStringv0, "org.conscrypt.Conscrypt"
1: 0x02: Const4 v1, 0x0 (0)
2: 0x03: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x06, line 108
3: 0x06: InvokeStatic { } Lorg/conscrypt/Conscrypt;->isAvailable()Z
4: 0x09: MoveResult v0
5: 0x0a: IfNez v0, 0x0d (+3)
0x0c, line 109
6: 0x0c: ReturnObject v1
0x0d, line 112
7: 0x0d: NewInstance v0, okhttp3.internal.platform.ConscryptPlatform
8: 0x0f: InvokeDirect { v0 } Lokhttp3/internal/platform/ConscryptPlatform;-><init>()V
9: 0x12: ReturnObject v0
0x13, line 113
10: 0x13: MoveException v0
0x14, line 114, locals: [0 -> e]
11: 0x14: ReturnObject v1
Tries (numbers are offsets)
[0x03 .. 0x11] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x13
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: void org.acra.collector.MediaCodecListCollector.prepare()
registers: 11, inputs: 1, outputs: 3
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 94, locals: [10 -> this]
0: 0x00: DexItemBasedConstStringv0, "android.media.MediaCodecInfo$CodecCapabilities"
1: 0x02: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
2: 0x05: MoveResultObject v0
0x06, line 97, locals: [0 -> codecCapabilitiesClass, 10 -> this]
3: 0x06: InvokeVirtual { v0 } Ljava/lang/Class;->getFields()[Ljava/lang/reflect/Field;
4: 0x09: MoveResultObject v1
5: 0x0a: ArrayLength v2, v1
6: 0x0b: Const4 v3, 0x0 (0)
7: 0x0c: Const4 v4, 0x0 (0)
8: 0x0d: Const4 v5, 0x0 (0)
9: 0x0e: IfGe v4, v2, 0x42 (+52)
10: 0x10: AgetObject v6, v1, v4
0x12, line 98, locals: [0 -> codecCapabilitiesClass, 6 -> f, 10 -> this]
11: 0x12: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getModifiers()I
12: 0x15: MoveResult v7
13: 0x16: InvokeStatic { v7 } Ljava/lang/reflect/Modifier;->isStatic(I)Z
14: 0x19: MoveResult v7
15: 0x1a: IfEqz v7, 0x3f (+37)
16: 0x1c: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getModifiers()I
17: 0x1f: MoveResult v7
18: 0x20: InvokeStatic { v7 } Ljava/lang/reflect/Modifier;->isFinal(I)Z
19: 0x23: MoveResult v7
20: 0x24: IfEqz v7, 0x3f (+27)
0x26, line 98, locals: [0 -> codecCapabilitiesClass, 6 -> f, 10 -> this]
0x26, line 99, locals: [0 -> codecCapabilitiesClass, 6 -> f, 10 -> this]
21: 0x26: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
22: 0x29: MoveResultObject v7
23: 0x2a: ConstString v8, "COLOR_"
24: 0x2c: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
25: 0x2f: MoveResult v7
26: 0x30: IfEqz v7, 0x3f (+15)
0x32, line 100, locals: [0 -> codecCapabilitiesClass, 6 -> f, 10 -> this]
27: 0x32: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mColorFormatValues
28: 0x34: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
29: 0x37: MoveResult v5
30: 0x38: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
31: 0x3b: MoveResultObject v8
32: 0x3c: InvokeVirtual { v7 v5 v8 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
0x3f, line 97, locals: [0 -> codecCapabilitiesClass, 10 -> this]
33: 0x3f: AddIntLit8 v4, v4, #1
34: 0x41: Goto 0x0d (-52)
0x42, line 105, locals: [0 -> codecCapabilitiesClass, 10 -> this]
35: 0x42: DexItemBasedConstStringv1, "android.media.MediaCodecInfo$CodecProfileLevel"
36: 0x44: InvokeStatic { v1 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
37: 0x47: MoveResultObject v1
0x48, line 106, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 10 -> this]
38: 0x48: InvokeVirtual { v1 } Ljava/lang/Class;->getFields()[Ljava/lang/reflect/Field;
39: 0x4b: MoveResultObject v2
40: 0x4c: ArrayLength v4, v2
41: 0x4d: IfGe v3, v4, 0x120 (+211)
42: 0x4f: AgetObject v6, v2, v3
0x51, line 107, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
43: 0x51: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getModifiers()I
44: 0x54: MoveResult v7
45: 0x55: InvokeStatic { v7 } Ljava/lang/reflect/Modifier;->isStatic(I)Z
46: 0x58: MoveResult v7
47: 0x59: IfEqz v7, 0x11c (+195)
48: 0x5b: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getModifiers()I
49: 0x5e: MoveResult v7
50: 0x5f: InvokeStatic { v7 } Ljava/lang/reflect/Modifier;->isFinal(I)Z
51: 0x62: MoveResult v7
52: 0x63: IfEqz v7, 0x11c (+185)
0x65, line 107, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
0x65, line 108, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
53: 0x65: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
54: 0x68: MoveResultObject v7
55: 0x69: ConstString v8, "AVCLevel"
56: 0x6b: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
57: 0x6e: MoveResult v7
58: 0x6f: IfEqz v7, 0x80 (+17)
0x71, line 109, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
59: 0x71: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mAVCLevelValues
60: 0x73: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
61: 0x76: MoveResult v8
62: 0x77: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
63: 0x7a: MoveResultObject v9
64: 0x7b: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
65: 0x7e: Goto16 158 0x11c (+158)
0x80, line 110, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
66: 0x80: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
67: 0x83: MoveResultObject v7
68: 0x84: ConstString v8, "AVCProfile"
69: 0x86: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
70: 0x89: MoveResult v7
71: 0x8a: IfEqz v7, 0x9b (+17)
0x8c, line 111, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
72: 0x8c: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mAVCProfileValues
73: 0x8e: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
74: 0x91: MoveResult v8
75: 0x92: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
76: 0x95: MoveResultObject v9
77: 0x96: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
78: 0x99: Goto16 131 0x11c (+131)
0x9b, line 112, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
79: 0x9b: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
80: 0x9e: MoveResultObject v7
81: 0x9f: ConstString v8, "H263Level"
82: 0xa1: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
83: 0xa4: MoveResult v7
84: 0xa5: IfEqz v7, 0xb5 (+16)
0xa7, line 113, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
85: 0xa7: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mH263LevelValues
86: 0xa9: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
87: 0xac: MoveResult v8
88: 0xad: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
89: 0xb0: MoveResultObject v9
90: 0xb1: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
91: 0xb4: Goto 0x11c (+104)
0xb5, line 114, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
92: 0xb5: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
93: 0xb8: MoveResultObject v7
94: 0xb9: ConstString v8, "H263Profile"
95: 0xbb: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
96: 0xbe: MoveResult v7
97: 0xbf: IfEqz v7, 0xcf (+16)
0xc1, line 115, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
98: 0xc1: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mH263ProfileValues
99: 0xc3: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
100: 0xc6: MoveResult v8
101: 0xc7: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
102: 0xca: MoveResultObject v9
103: 0xcb: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
104: 0xce: Goto 0x11c (+78)
0xcf, line 116, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
105: 0xcf: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
106: 0xd2: MoveResultObject v7
107: 0xd3: ConstString v8, "MPEG4Level"
108: 0xd5: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
109: 0xd8: MoveResult v7
110: 0xd9: IfEqz v7, 0xe9 (+16)
0xdb, line 117, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
111: 0xdb: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mMPEG4LevelValues
112: 0xdd: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
113: 0xe0: MoveResult v8
114: 0xe1: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
115: 0xe4: MoveResultObject v9
116: 0xe5: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
117: 0xe8: Goto 0x11c (+52)
0xe9, line 118, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
118: 0xe9: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
119: 0xec: MoveResultObject v7
120: 0xed: ConstString v8, "MPEG4Profile"
121: 0xef: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
122: 0xf2: MoveResult v7
123: 0xf3: IfEqz v7, 0x103 (+16)
0xf5, line 119, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
124: 0xf5: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mMPEG4ProfileValues
125: 0xf7: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
126: 0xfa: MoveResult v8
127: 0xfb: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
128: 0xfe: MoveResultObject v9
129: 0xff: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
130: 0x102: Goto 0x11c (+26)
0x103, line 120, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
131: 0x103: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
132: 0x106: MoveResultObject v7
133: 0x107: ConstString v8, "AAC"
134: 0x109: InvokeVirtual { v7 v8 } Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
135: 0x10c: MoveResult v7
136: 0x10d: IfEqz v7, 0x11c (+15)
0x10f, line 121, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 6 -> f, 10 -> this]
137: 0x10f: IgetObject v7, v10, Field android.util.SparseArray org.acra.collector.MediaCodecListCollector.mAACProfileValues
138: 0x111: InvokeVirtual { v6 v5 } Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
139: 0x114: MoveResult v8
140: 0x115: InvokeVirtual { v6 } Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
141: 0x118: MoveResultObject v9
142: 0x119: InvokeVirtual { v7 v8 v9 } Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
0x11c, line 106, locals: [0 -> codecCapabilitiesClass, 1 -> codecProfileLevelClass, 10 -> this]
143: 0x11c: AddIntLit8 v3, v3, #1
144: 0x11e: Goto16 -209 0x4d (-209)
0x120, line 106, locals: [10 -> this]
145: 0x120: Goto 0x128 (+8)
0x121, line 131, locals: [10 -> this]
146: 0x121: MoveException v0
147: 0x122: Goto 0x129 (+7)
0x123, line 129, locals: [10 -> this]
148: 0x123: MoveException v0
149: 0x124: Goto 0x128 (+4)
0x125, line 127, locals: [10 -> this]
150: 0x125: MoveException v0
151: 0x126: Goto 0x128 (+2)
0x127, line 125, locals: [10 -> this]
152: 0x127: MoveException v0
0x128, line 133, locals: [10 -> this]
153: 0x128: Nop
0x129, line 135, locals: [10 -> this]
154: 0x129: ReturnVoid
Tries (numbers are offsets)
[0x02 .. 0x3e] -> 0
[0x44 .. 0x11b] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x127
java.lang.SecurityException -> 0x125
java.lang.IllegalAccessException -> 0x123
java.lang.IllegalArgumentException -> 0x121
]
[R8 logging]: useIdentifierNameString: true
[R8 logging]: boolean com.urbanairship.messagecenter.ThemedActivity.isAppCompatAvailable(android.app.Activity)
registers: 7, inputs: 1, outputs: 4
------------------------------------------------------------
inst# offset instruction arguments
------------------------------------------------------------
0x00, line 179, locals: [6 -> activity]
0: 0x00: SgetObject v0, Field java.lang.Boolean com.urbanairship.messagecenter.ThemedActivity.isAppCompatDependencyAvailable
1: 0x02: Const4 v1, 0x1 (1)
2: 0x03: Const4 v2, 0x0 (0)
3: 0x04: IfNez v0, 0x19 (+21)
0x06, line 182, locals: [6 -> activity]
4: 0x06: DexItemBasedConstStringv0, "androidx.appcompat.app.AppCompatDelegate"
5: 0x08: InvokeStatic { v0 } Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
0x0b, line 183, locals: [6 -> activity]
6: 0x0b: InvokeStatic { v1 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
7: 0x0e: MoveResultObject v0
8: 0x0f: SputObject v0, Field java.lang.Boolean com.urbanairship.messagecenter.ThemedActivity.isAppCompatDependencyAvailable
0x11, line 186, locals: [6 -> activity]
9: 0x11: Goto 0x19 (+8)
0x12, line 184, locals: [6 -> activity]
10: 0x12: MoveException v0
0x13, line 185, locals: [0 -> e, 6 -> activity]
11: 0x13: InvokeStatic { v2 } Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
12: 0x16: MoveResultObject v3
13: 0x17: SputObject v3, Field java.lang.Boolean com.urbanairship.messagecenter.ThemedActivity.isAppCompatDependencyAvailable
0x19, line 189, locals: [6 -> activity]
14: 0x19: SgetObject v0, Field java.lang.Boolean com.urbanairship.messagecenter.ThemedActivity.isAppCompatDependencyAvailable
15: 0x1b: InvokeVirtual { v0 } Ljava/lang/Boolean;->booleanValue()Z
16: 0x1e: MoveResult v0
17: 0x1f: IfNez v0, 0x22 (+3)
0x21, line 190, locals: [6 -> activity]
18: 0x21: Return v2
0x22, line 193, locals: [6 -> activity]
19: 0x22: InvokeVirtual { v6 } Landroid/app/Activity;->getResources()Landroid/content/res/Resources;
20: 0x25: MoveResultObject v0
21: 0x26: InvokeVirtual { v6 } Landroid/app/Activity;->getPackageName()Ljava/lang/String;
22: 0x29: MoveResultObject v3
23: 0x2a: ConstString v4, "colorPrimary"
24: 0x2c: ConstString v5, "attr"
25: 0x2e: InvokeVirtual { v0 v4 v5 v3 } Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
26: 0x31: MoveResult v0
0x32, line 194, locals: [0 -> colorPrimary, 6 -> activity]
27: 0x32: IfNez v0, 0x35 (+3)
0x34, line 195, locals: [0 -> colorPrimary, 6 -> activity]
28: 0x34: Return v2
0x35, line 198, locals: [0 -> colorPrimary, 6 -> activity]
29: 0x35: NewArray v1, v1, int[]
30: 0x37: Aput v0, v1, v2
31: 0x39: InvokeVirtual { v6 v1 } Landroid/app/Activity;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;
32: 0x3c: MoveResultObject v1
0x3d, line 199, locals: [0 -> colorPrimary, 1 -> a, 6 -> activity]
33: 0x3d: InvokeVirtual { v1 v2 } Landroid/content/res/TypedArray;->hasValue(I)Z
34: 0x40: MoveResult v2
0x41, line 200, locals: [0 -> colorPrimary, 1 -> a, 2 -> isAvailable, 6 -> activity]
35: 0x41: InvokeVirtual { v1 } Landroid/content/res/TypedArray;->recycle()V
0x44, line 202, locals: [0 -> colorPrimary, 1 -> a, 2 -> isAvailable, 6 -> activity]
36: 0x44: Return v2
Tries (numbers are offsets)
[0x08 .. 0x10] -> 0
Handlers (numbers are offsets)
0: [
java.lang.ClassNotFoundException -> 0x12
]
[R8 logging]: useIdentifierNameString: true
ev...@willowtreeapps.com <ev...@willowtreeapps.com> #7
* What went wrong:
Execution failed for task ':app:transformClassesAndResourcesWithR8ForSitAutomation'.
> java.lang.NullPointerException (no error message)
Execution failed for task ':app:transformClassesAndResourcesWithR8ForSitAutomation'.
> java.lang.NullPointerException (no error message)
js...@google.com <js...@google.com> #8
Thank you for your trial. I guessed we missed some places to copy the metadata/optimization info about certain methods, but it seems that methods with those instructions are correctly marked as expected. But, a bit surprised to see those remnants are quite pervasive.
This time, I'm chasing where those instructions are created and what methods we're visiting to remove them. Please use the attached r8.jar to collect logs? Thanks!
This time, I'm chasing where those instructions are created and what methods we're visiting to remove them. Please use the attached r8.jar to collect logs? Thanks!
js...@google.com <js...@google.com> #9
Btw, it seems like all those reflective uses come from libraries, e.g.,
*https://github.com/square/retrofit/blob/master/retrofit/src/main/java/retrofit2/Platform.java#L45
*https://github.com/urbanairship/android-library/blob/master/urbanairship-core/src/main/java/com/urbanairship/google/PlayServicesUtils.java#L136
*https://github.com/square/okhttp/blob/master/okhttp/src/main/java/okhttp3/internal/platform/AndroidPlatform.kt#L101
*
*
*
ev...@willowtreeapps.com <ev...@willowtreeapps.com> #10
[R8 logging]: origin of DexItemBasedConstString
java.lang.Exception
at com.android.tools.r8.ir.code.DexItemBasedConstString.<init>(DexItemBasedConstString.java:41)
at com.android.tools.r8.ir.code.DexItemBasedConstString.<init>(DexItemBasedConstString.java:29)
at com.android.tools.r8.naming.IdentifierNameStringMarker.decoupleIdentifierNameStringsInMethod(IdentifierNameStringMarker.java:189)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCode(IRConverter.java:922)
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)
[R8 logging]: origin of DexItemBasedConstString
java.lang.Exception
at com.android.tools.r8.ir.code.DexItemBasedConstString.<init>(DexItemBasedConstString.java:41)
at com.android.tools.r8.ir.code.DexItemBasedConstString.<init>(DexItemBasedConstString.java:29)
at com.android.tools.r8.naming.IdentifierNameStringMarker.decoupleIdentifierNameStringsInMethod(IdentifierNameStringMarker.java:189)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCode(IRConverter.java:922)
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)
> Task :app:transformClassesAndResourcesWithR8ForSitAutomation FAILED
java.lang.Exception
at com.android.tools.r8.ir.code.DexItemBasedConstString.<init>(DexItemBasedConstString.java:41)
at com.android.tools.r8.ir.code.DexItemBasedConstString.<init>(DexItemBasedConstString.java:29)
at com.android.tools.r8.naming.IdentifierNameStringMarker.decoupleIdentifierNameStringsInMethod(IdentifierNameStringMarker.java:189)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCode(IRConverter.java:922)
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)
[R8 logging]: origin of DexItemBasedConstString
java.lang.Exception
at com.android.tools.r8.ir.code.DexItemBasedConstString.<init>(DexItemBasedConstString.java:41)
at com.android.tools.r8.ir.code.DexItemBasedConstString.<init>(DexItemBasedConstString.java:29)
at com.android.tools.r8.naming.IdentifierNameStringMarker.decoupleIdentifierNameStringsInMethod(IdentifierNameStringMarker.java:189)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCode(IRConverter.java:922)
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)
> Task :app:transformClassesAndResourcesWithR8ForSitAutomation FAILED
ev...@willowtreeapps.com <ev...@willowtreeapps.com> #11
Don't see any other 'R8 logging' lines, sorry
js...@google.com <js...@google.com> #12
No worries! Thank you so much for collecting logs so far. The lack of any other logging lines means, we are adding those kinds of instructions, but never revisit methods to remove them.
However, that's quite confusing because, we add those instructions if and only if obfuscation is enabled and we found reflection with constant strings; and also remove them if obfuscation is enabled. Missing the latter step while doing the former step seems quite contradictory. Could you tell me more about the configuration of task ':app:transformClassesAndResourcesWithR8ForSitAutomation'? E.g. do you have `-dontobfuscate` in your proguard rules? I guess minifyEnabled is set to be true?
However, that's quite confusing because, we add those instructions if and only if obfuscation is enabled and we found reflection with constant strings; and also remove them if obfuscation is enabled. Missing the latter step while doing the former step seems quite contradictory. Could you tell me more about the configuration of task ':app:transformClassesAndResourcesWithR8ForSitAutomation'? E.g. do you have `-dontobfuscate` in your proguard rules? I guess minifyEnabled is set to be true?
js...@google.com <js...@google.com> #13
Okay, I spot one possibility. Could you add `-printconfiguration full-configuration.txt` to your proguard configuration and share the generated `full-configuration.txt` with us?
js...@google.com <js...@google.com> #14
Reproduced locally, but it'd really appreciated if you can confirm that somewhere in your proguard configuration there is `-addconfigurationdebugging`. Note that this could come from the library, and that's why I asked to use `-printconfiguration` to nail down. (If a library adds that rule and spreads it, we should contact them and ask them to remove that.) If you intentionally added it to debug configurations, I guess removing it would be a workaround.
ev...@willowtreeapps.com <ev...@willowtreeapps.com> #15
So yes we do have -addconfigurationdebugging defined, and removing it causes it to build successfully, thanks for the help!
js...@google.com <js...@google.com> #16
Thank you for the confirmation. That is a newly added, half-baked feature, and thank you for triggering this bug! :) I'm working on the fix, and make it ready to AGP 3.5 final.
js...@google.com <js...@google.com> #17
Also, lowering the priority as there is a workaround.
js...@google.com <js...@google.com> #18
This is fixed on master (https://r8-review.googlesource.com/c/r8/+/38601 ) as well as 1.5. You can use it by editing your top-level `build.gradle` as follows:
buildscript {
repositories {
maven {
url 'http://storage.googleapis.com/r8-releases/raw '
}
}
dependencies {
classpath 'com.android.tools:r8:1.5.36' // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:X.Y.Z' // Your current AGP version.
}
}
buildscript {
repositories {
maven {
url '
}
}
dependencies {
classpath 'com.android.tools:r8:1.5.36' // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:X.Y.Z' // Your current AGP version.
}
}
ku...@gmail.com <ku...@gmail.com> #19
Hi,
We also have the same error using Android Studio 3.5.3 with gradle plugin 3.5.3. Can confirm that there is no line in proguard '-addconfigurationdebugging'.
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesAndResourcesWithR8ForRelease'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:151)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:148)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:141)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
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:416)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
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: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: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
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.get(ForkJoinTask.java:1005)
at com.android.tools.r8.utils.ThreadUtils.a(:4)
at com.android.tools.r8.dex.ApplicationWriter.write(:88)
at com.android.tools.r8.R8.writeApplication(:26)
at com.android.tools.r8.R8.a(:658)
at com.android.tools.r8.R8.c(:1)
at com.android.tools.r8.R8.b(:1)
at com.android.tools.r8.utils.t.a(:23)
at com.android.tools.r8.R8.runForTesting(:3)
at com.android.tools.r8.R8.run(:3)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:199)
at com.android.build.gradle.internal.transforms.R8Transform.transform(R8Transform.kt:261)
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:106)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
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:103)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:404)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:393)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:376)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:213)
at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
at java.util.Optional.map(Optional.java:215)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
at java.util.Optional.map(Optional.java:215)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:120)
... 38 more
Suppressed: java.util.concurrent.ExecutionException: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
... 110 more
[CIRCULAR REFERENCE:com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString]
Caused by: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at com.android.tools.r8.code.H.a(:3)
at com.android.tools.r8.dex.DexOutputBuffer.a(:9)
at com.android.tools.r8.dex.c.a(:126)
at java.util.ArrayList.forEach(ArrayList.java:1257)
at com.android.tools.r8.dex.c.a(:91)
at com.android.tools.r8.dex.c.b(:50)
at com.android.tools.r8.dex.ApplicationWriter.a(:35)
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)
We also have the same error using Android Studio 3.5.3 with gradle plugin 3.5.3. Can confirm that there is no line in proguard '-addconfigurationdebugging'.
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesAndResourcesWithR8ForRelease'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:151)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:148)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:141)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
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:416)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
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: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: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
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.get(ForkJoinTask.java:1005)
at com.android.tools.r8.utils.ThreadUtils.a(:4)
at com.android.tools.r8.dex.ApplicationWriter.write(:88)
at com.android.tools.r8.R8.writeApplication(:26)
at com.android.tools.r8.R8.a(:658)
at com.android.tools.r8.R8.c(:1)
at com.android.tools.r8.R8.b(:1)
at com.android.tools.r8.utils.t.a(:23)
at com.android.tools.r8.R8.runForTesting(:3)
at com.android.tools.r8.R8.run(:3)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:199)
at com.android.build.gradle.internal.transforms.R8Transform.transform(R8Transform.kt:261)
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:106)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
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:103)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:404)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:393)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:376)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:213)
at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
at java.util.Optional.map(Optional.java:215)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
at java.util.Optional.map(Optional.java:215)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:120)
... 38 more
Suppressed: java.util.concurrent.ExecutionException: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
... 110 more
[CIRCULAR REFERENCE:com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString]
Caused by: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at com.android.tools.r8.code.H.a(:3)
at com.android.tools.r8.dex.DexOutputBuffer.a(:9)
at com.android.tools.r8.dex.c.a(:126)
at java.util.ArrayList.forEach(ArrayList.java:1257)
at com.android.tools.r8.dex.c.a(:91)
at com.android.tools.r8.dex.c.b(:50)
at com.android.tools.r8.dex.ApplicationWriter.a(:35)
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)
js...@google.com <js...@google.com> #20
> Can confirm that there is no line in proguard '-addconfigurationdebugging'
Note that, even though your proguard configuration doesn't have that directive, it could be the case that some other configurations can come from libraries' configurations. So, if `-printconfiguration` indeed doesn't have that directive, yeah that feature is not triggered. (https://www.guardsquare.com/en/products/proguard/manual/usage#printconfiguration )
However, it's been (believed to be) fixed for a long time, so this might be a different issue. I've filed a separate one: b/148021799
Note that, even though your proguard configuration doesn't have that directive, it could be the case that some other configurations can come from libraries' configurations. So, if `-printconfiguration` indeed doesn't have that directive, yeah that feature is not triggered. (
However, it's been (believed to be) fixed for a long time, so this might be a different issue. I've filed a separate one:
Description
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesAndResourcesWithR8ForSitAutomation'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:151)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:148)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:141)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
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:416)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
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 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at com.android.tools.r8.utils.ThreadUtils.a(:4)
at com.android.tools.r8.dex.ApplicationWriter.write(:88)
at com.android.tools.r8.R8.writeApplication(:22)
at com.android.tools.r8.R8.a(:663)
at com.android.tools.r8.R8.c(:1)
at com.android.tools.r8.R8.b(:1)
at com.android.tools.r8.utils.z.a(:23)
at com.android.tools.r8.R8.runForTesting(:3)
at com.android.tools.r8.R8.run(:3)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:195)
at com.android.build.gradle.internal.transforms.R8Transform.transform(R8Transform.kt:261)
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:106)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:404)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:393)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:376)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:213)
at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:120)
... 36 more
Suppressed: java.util.concurrent.ExecutionException: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
at com.android.tools.r8.utils.ThreadUtils.a(:4)
at com.android.tools.r8.dex.ApplicationWriter.write(:88)
at com.android.tools.r8.R8.writeApplication(:22)
at com.android.tools.r8.R8.a(:663)
at com.android.tools.r8.R8.c(:1)
at com.android.tools.r8.R8.b(:1)
at com.android.tools.r8.utils.z.a(:23)
at com.android.tools.r8.R8.runForTesting(:3)
at com.android.tools.r8.R8.run(:3)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:195)
at com.android.build.gradle.internal.transforms.R8Transform.transform(R8Transform.kt:261)
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:106)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
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:103)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:404)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:393)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:376)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:213)
at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
at java.util.Optional.map(Optional.java:215)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
at java.util.Optional.map(Optional.java:215)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:120)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
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:416)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
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: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)
[CIRCULAR REFERENCE:com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString]
Caused by: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString
at com.android.tools.r8.code.H.a(:3)
at com.android.tools.r8.dex.DexOutputBuffer.a(:9)
at com.android.tools.r8.dex.f.a(:126)
at com.android.tools.r8.dex.f.a(:91)
at com.android.tools.r8.dex.f.b(:50)
at com.android.tools.r8.dex.ApplicationWriter.a(:35)