9

I am running Android Studio 3.0. I am currently trying to make Glide version 4.3.0 work, but had the same issues with version 4.2.0.

My project runs fine without adding the Glide package dependencies in my build.gradle file, downloaded from here https://github.com/bumptech/glide. I also followed the setup instructions here too. First I added the jar file to my libs folder, and then added the dependencies.

The full error is

Error:Execution failed for task 
':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

I've researched this issue a lot but only found solutions for other packages which provided specific fixes for those packages, but I wasn't able to find a solution for this specific package.

Here's the full gradle stack trace.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
    at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    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.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
    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: java.lang.RuntimeException: java.io.IOException: Can't write [C:\Users\Alex\AndroidStudioProjects\ChanReader\app\build\intermediates\multi-dex\debug\componentClasses.jar] (Can't read [C:\Users\Alex\.gradle\caches\modules-2\files-2.1\com.github.bumptech.glide\glide\4.3.0\5ef2a3700ab3320576eab21ff504189e5a92a350\glide-4.3.0.jar(;;;;;;**.class)] (Duplicate zip entry [glide-4.3.0.jar:com/bumptech/glide/util/Synthetic.class]))
    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:213)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
    at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173)
    at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
    at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
    ... 27 more
Caused by: java.io.IOException: Can't write [C:\Users\Alex\AndroidStudioProjects\ChanReader\app\build\intermediates\multi-dex\debug\componentClasses.jar] (Can't read [C:\Users\Alex\.gradle\caches\modules-2\files-2.1\com.github.bumptech.glide\glide\4.3.0\5ef2a3700ab3320576eab21ff504189e5a92a350\glide-4.3.0.jar(;;;;;;**.class)] (Duplicate zip entry [glide-4.3.0.jar:com/bumptech/glide/util/Synthetic.class]))
    at proguard.OutputWriter.writeOutput(OutputWriter.java:187)
    at proguard.OutputWriter.execute(OutputWriter.java:79)
    at proguard.ProGuard.writeOutput(ProGuard.java:427)
    at proguard.ProGuard.execute(ProGuard.java:175)
    at com.android.build.gradle.internal.transforms.BaseProguardAction.runProguard(BaseProguardAction.java:61)
    at com.android.build.gradle.internal.transforms.MainDexListTransform.shrinkWithProguard(MainDexListTransform.java:232)
    at com.android.build.gradle.internal.transforms.MainDexListTransform.transform(MainDexListTransform.java:184)
    at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:222)
    at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:218)
    at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
    ... 39 more
Caused by: java.io.IOException: Can't read [C:\Users\Alex\.gradle\caches\modules-2\files-2.1\com.github.bumptech.glide\glide\4.3.0\5ef2a3700ab3320576eab21ff504189e5a92a350\glide-4.3.0.jar(;;;;;;**.class)] (Duplicate zip entry [glide-4.3.0.jar:com/bumptech/glide/util/Synthetic.class])
    at proguard.InputReader.readInput(InputReader.java:188)
    at proguard.InputReader.readInput(InputReader.java:158)
    at proguard.OutputWriter.writeOutput(OutputWriter.java:176)
    ... 48 more
Caused by: java.io.IOException: Duplicate zip entry [glide-4.3.0.jar:com/bumptech/glide/util/Synthetic.class]
    at proguard.io.JarWriter.getOutputStream(JarWriter.java:138)
    at proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:106)
    at proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:106)
    at proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:92)
    at proguard.io.ClassRewriter.read(ClassRewriter.java:68)
    at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
    at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
    at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
    at proguard.io.JarReader.read(JarReader.java:65)
    at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)
    at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)
    at proguard.InputReader.readInput(InputReader.java:184)
    ... 50 more
Alex F
  • 2,086
  • 4
  • 29
  • 67
  • I suggest that you edit your question and post the entire output of your Gradle console, not just that one line. The details of your problem lie elsewhere in the output. – CommonsWare Nov 02 '17 at 23:40
  • @CommonsWare just did. Thanks for the suggestion. – Alex F Nov 02 '17 at 23:45
  • Hmmmm... try moving `C:\Users\Alex\.gradle\caches\modules-2\files-2.1\com.github.bumptech.glide` to some temporary location, then do a fresh build. Perhaps you got a corrupt JAR. If the problem persists, I'd file an issue with Glide, as perhaps their JAR needs fixing. You could also try dropping down to `4.2.0` temporarily. – CommonsWare Nov 02 '17 at 23:49
  • Well, all of **DexMerger** i met was about updating gradle.properties to `4.3` would you try that? –  Nov 03 '17 at 00:13
  • @CommonsWare I tried version 4.2.0 with on luck either. – Alex F Nov 03 '17 at 12:17
  • @Ibrahim I'm not quite sure what you mean. Do you mean trying version 4.3.0 of Glide? That's what I have the problem with above. – Alex F Nov 03 '17 at 12:18
  • @AlexF No, i mean version of your gradle **gradle.propertise**. –  Nov 03 '17 at 12:31
  • @CommonsWare I gave your suggestion a try, with no luck though. – Alex F Nov 06 '17 at 00:34
  • @Ibrahim I tried updating the gradle version to 4.3, but still had the same error. – Alex F Nov 06 '17 at 00:49
  • IDK, but you may try to hash the picasso library and try without it since you have duplicate zip folder, other way as common said you have to file an issue with glide. –  Nov 06 '17 at 01:03
  • I also tried creating an empty project with just the Glide package installed, but got the same error. – Alex F Nov 06 '17 at 01:52
  • @AlexF: I don't see where my comments actually addressed your underlying problem. – CommonsWare Nov 13 '17 at 16:52
  • It's not sum game @AlexF , If you already found the solution then that's we need, Congratulation!. –  Nov 13 '17 at 17:04

1 Answers1

8

The issue was adding the jar file to the libs folder of my project. Apparently, this created a duplication issue. After removing it, my application runs fine.

I naively did this because I used the Picasso library first in which I did this. I assumed it was standard practice.

Alex F
  • 2,086
  • 4
  • 29
  • 67