【发布时间】:2015-05-24 12:46:08
【问题描述】:
我有一个 Android 项目,它有一些依赖项,一个是“org.parceler:parceler:0.2.16”,另一个是“com.google.guava:guava:18.0”。它们都有 'com.google.thirdparty.publicsuffix' 包,如下图所示。 Gradle configs 与项目成功同步,但是当我想编译项目时,我遇到了这个错误:
Error:Gradle: Execution failed for task ':app:dexDebug'.
com.android.ide.common.internal.LoggedErrorException:无法运行命令: C:\Users\Siamak\AppData\Local\Android\sdk\build-tools\21.1.2\dx.bat --dex --no-optimize --output C:\Users\Siamak\AndroidStudioProjects\HelloWorld\app\ build\intermediates\dex\debug --input-list=C:\Users\Siamak\AndroidStudioProjects\HelloWorld\app\build\intermediates\tmp\dex\debug\inputList.txt 错误代码: 2 输出: 意外的顶级异常: com.android.dex.DexException:多个dex文件定义了Lcom/google/thirdparty/publicsuffix/PublicSuffixPatterns; 在 com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) 在 com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) 在 com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) 在 com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) 在 com.android.dx.merge.DexMerger.merge(DexMerger.java:189) 在 com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) 在 com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) 在 com.android.dx.command.dexer.Main.run(Main.java:246) 在 com.android.dx.command.dexer.Main.main(Main.java:215) 在 com.android.dx.command.Main.main(Main.java:106)
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:20.0.0'
compile 'com.squareup.retrofit:retrofit:1.6.1'
compile 'com.jakewharton:butterknife:6.1.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile ('org.parceler:parceler:0.2.16')
compile 'org.apache.httpcomponents:httpmime:4.3.5'
compile ('com.google.guava:guava:18.0')
}
对不起图片;-) Image
编辑:
在 cmets 中提到的问题不是相同的情况,一种解决方案是在依赖项部分使用排除命令,因为我在项目依赖项之间没有任何传递依赖项,它没有用。另一种解决方案是使用特殊的 jar 文件(带有 core 或 dep 后缀,如“junit-dep”或“mockito-core”),但我找不到任何不包含“com.google.thirdparty”的特定最新 parceler jar 文件.publicsuffix'。 请访问提供的图片链接以更好地了解问题。 谢谢。
编辑 2:
项目依赖树:
+--- com.android.support:appcompat-v7:20.0.0
| \--- com.android.support:support-v4:20.0.0
| \--- com.android.support:support-annotations:20.0.0
+--- com.squareup.retrofit:retrofit:1.6.1
| \--- com.google.code.gson:gson:2.2.4
+--- com.jakewharton:butterknife:6.1.0
+--- com.squareup.picasso:picasso:2.5.2
+--- org.parceler:parceler:0.2.+ -> 0.2.16
| \--- org.parceler:parceler-api:0.2.16
+--- org.apache.httpcomponents:httpmime:4.3.5
| \--- org.apache.httpcomponents:httpclient:4.3.5
| +--- org.apache.httpcomponents:httpcore:4.3.2
| +--- commons-logging:commons-logging:1.1.3
| \--- commons-codec:commons-codec:1.6
\--- com.google.guava:guava:18.0
【问题讨论】:
-
更多描述作为编辑部分添加到问题中,有什么想法吗?
-
哦,对不起。我最初误解了这个问题
标签: android gradle conflict dex