【发布时间】:2017-11-16 16:51:32
【问题描述】:
自带xmlpullparser 的包含项目总是需要在 Android Studio 中格外小心,因为 Android 自带了自己的 xmlpullparser。
例如流行的 XML 映射器 XStream 需要此排除 (1) (2) :
compile('com.thoughtworks.xstream:xstream:1.4.7') {
exclude group: 'xmlpull', module: 'xmlpull' //exclude xmlpull to avoid `Multiple dex files define`-error
}
Somewhere else我也见过:
compile('com.thoughtworks.xstream:xstream:1.4.7') {
exclude group: 'xmlpull'
exclude group: 'XmlPullParser'
}
关于这个问题的新闻是:排除在 Android 插件版本 2.3.3 上有效,而在 Android 插件版本 3.0.0 上我又遇到错误! (您可以在文件>项目结构>项目下看到Android插件版本)
是否有人已经想出如何更改 gradle 文件以使 xstream 在Android Plugin Version 3.0.0 上运行?
我只是怀疑“XStream”会导致该错误。
16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 失败:构建失败并出现异常。 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] * 出了什么问题: 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter]任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'执行失败。 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] > com.android.builder.dexing.DexArchiveMergerException:无法合并 dex 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] * 例外是: 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException:任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的执行失败。 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100) 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63) 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 16:40:26.671 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124) 16:40:26.672 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80) 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105) 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99) 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625) 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580) 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99) 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 原因:java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法合并 dex 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 原因:com.android.builder.dexing.DexArchiveMergerException:无法合并 dex 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:72) 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36) 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 原因:com.android.dex.DexException:多个 dex 文件定义 Lorg/xmlpull/mxp1/MXParser; 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661) 16:40:26.673 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616) 16:40:26.674 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598) 16:40:26.674 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) 16:40:26.674 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 com.android.dx.merge.DexMerger.merge(DexMerger.java:198) 16:40:26.674 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61) 16:40:26.674 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] ... 还有 1 个 16:40:26.674 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 16:40:26.674 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 16:40:26.674 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] * 在 https://help.gradle.org 获得更多帮助 16:40:26.674 [错误] [org.gradle.internal.buildevents.BuildResultLogger] 16:40:26.674 [错误] [org.gradle.internal.buildevents.BuildResultLogger] 37 秒内构建失败【问题讨论】:
标签: android android-gradle-plugin xstream android-build xmlpullparser