Jahir Fiquitiva
Jahir Fiquitiva

Reputation: 1509

Program type already present: android.arch.core.R

Any android dev around has faced this issue? I really need some help.

I've been dealing with it for hours and I'm not able to find the proper fix.

Started to happen after updated to Android Studio and Gradle Plugin 3.2.0 and Support Libs 28.0.0.

I have already searched for similar questions, and they are related to some Firebase modules, but I do not use any Firebase things in my project.

I also tried excluding the architecture componentes libraries from all my imports (in case some had them as dependencies) but it didn't work either.

build.gradle files

Too long to post them here (sorry)

Thanks in advance! 🙏🏼

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
    at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
    at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:262)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:246)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:136)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.execute(DefaultTaskPlanExecutor.java:201)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.executeWithTask(DefaultTaskPlanExecutor.java:192)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/67, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/68, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/externalLibsDexMerger/debug/0, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/65.jar, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/66.jar
Program type already present: android.arch.core.R
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
    at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)
    at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)
    at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
    at sun.reflect.GeneratedMethodAccessor390.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
    at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
    ... 33 more
Caused by: com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/67, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/68, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/externalLibsDexMerger/debug/0, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/65.jar, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/66.jar
Program type already present: android.arch.core.R
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
    at com.android.build.gradle.internal.transforms.DexMergerTransform.transform(DexMergerTransform.java:238)
    at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
    at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
    at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
    ... 49 more
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/67, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/68, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/externalLibsDexMerger/debug/0, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/65.jar, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/66.jar
Program type already present: android.arch.core.R
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
    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.reportException(ForkJoinTask.java:677)
    at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720)
    at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:406)
    at com.android.build.gradle.internal.transforms.DexMergerTransform.transform(DexMergerTransform.java:233)
    ... 52 more
Caused by: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/67, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/68, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/externalLibsDexMerger/debug/0, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/65.jar, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/66.jar
Program type already present: android.arch.core.R
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
    at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1431)
    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)
Caused by: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/67, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/68, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/externalLibsDexMerger/debug/0, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/65.jar, /Users/jahirfiquitiva/Dev/Android/Kuper/app/build/intermediates/transforms/dexBuilder/debug/66.jar
Program type already present: android.arch.core.R
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
    at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:132)
    at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:117)
    at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:101)
    at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:36)
    at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
    ... 4 more
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
    at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:65)
    at com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(ExceptionUtils.java:43)
    at com.android.tools.r8.D8.run(D8.java:90)
    at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:115)
    ... 7 more
Caused by: com.android.tools.r8.utils.AbortException: Error: Program type already present: android.arch.core.R
    at com.android.tools.r8.utils.Reporter.failIfPendingErrors(Reporter.java:116)
    at com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:74)
    at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:59)
    ... 10 more

Upvotes: 1

Views: 1183

Answers (1)

Jahir Fiquitiva
Jahir Fiquitiva

Reputation: 1509

My solution was to add '@aar' to one of the dependencies (possibly the one causing conflicts)

So, instead of:

implementation 'com.the.library:1.0.0'

I used:

implementation 'com.the.library:1.0.0@aar'

Upvotes: 1

Related Questions