部署apk時gradle編譯錯誤: Cause: duplicate entry: com/xxx/xxx/xxx.class。已解決
阿新 • • 發佈:2019-01-02
執行專案時出現了這個問題,報錯的資訊意思是某個類有重複入口,而且這個類是個kotlin類。但是同樣的程式碼在同事的機子上就沒問題完全可以部署執行。
於是猜想是配置問題,幾經周折找到了原因。解決方法是將下圖紅框中的勾選取消。
以下是錯誤日誌。
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':rcAnalyze:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug'.
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.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62 )
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
.....
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.util.zip.ZipException: duplicate entry: com/zhaonan/rcanalyze/ILogReporter$Companion.class
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)
... 32 more
Caused by: java.lang.RuntimeException: java.util.zip.ZipException: duplicate entry: com/zhaonan/rcanalyze/ILogReporter$Companion.class
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: java.util.zip.ZipException: duplicate entry: com/zhaonan/rcanalyze/ILogReporter$Companion.class
at java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:232)
at java.util.jar.JarOutputStream.putNextEntry(JarOutputStream.java:109)
at com.android.builder.packaging.JarMerger.write(JarMerger.java:196)
at com.android.builder.packaging.JarMerger.addDirectory(JarMerger.java:125)
at com.android.build.gradle.internal.transforms.LibraryBaseTransform.mergeInputsToLocation(LibraryBaseTransform.java:299)
at com.android.build.gradle.internal.transforms.LibraryIntermediateJarsTransform.handleJarOutput(LibraryIntermediateJarsTransform.java:213)
at com.android.build.gradle.internal.transforms.LibraryIntermediateJarsTransform.handleMainClass(LibraryIntermediateJarsTransform.java:182)
at com.android.build.gradle.internal.transforms.LibraryIntermediateJarsTransform.lambda$transform$0(LibraryIntermediateJarsTransform.java:147)
at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
... 4 more