Gradle构建

时间:2016-01-15 16:45:34

标签: android gradle

我一直在寻找some of the answers这里发布的有关此错误的信息,但没有运气。我希望得到一些关于发生了什么的澄清。我的错误如下:

  

错误:任务':app:transformResourcesWithMergeJavaResForDebug'的执行失败。   com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:在APK META-INF / maven / commons-io / commons-io / pom.xml中复制的重复文件       File1:/home/colin/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-io/1.3.2/b6dde38349ba9bb5e6ea6320531eae969985dae5/commons-io-1.3.2.jar       File2:/home/colin/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/1.3.2/b6dde38349ba9bb5e6ea6320531eae969985dae5/commons-io-1.3.2.jar

我已经完成了

packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/ASL2.0'
}
<{1>}文件中的

,但问题仍然存在。还有其他地方我应该放这个,或者只是删除一些文件?或者我可能已经排除了太多文件 - 我是否应该省略其中一些行,如果是这样的话?我也尝试将依赖项移到顶部,app > build.gradle以上无效。

此外,我对这些帖子中给出的一些建议感到有些困惑。 AndroidExclude之间的操作差异是什么?它们似乎是可以互换的,但表达了截然不同的想法。在上传到应用程序商店时,我似乎需要包含许可证,所以如果我将其排除在这里以便让应用程序进行编译,那么在我准备上传时,我将在哪里包含它?我希望有人能够更多地了解这里发生的事情。

1 个答案:

答案 0 :(得分:13)

我必须将以下行添加到packagingOptions {}

exclude 'META-INF/maven/commons-io/commons-io/pom.xml'
exclude 'META-INF/maven/commons-io/commons-io/pom.properties'

我的问题非常愚蠢;当包括exclude 'META-INF/maven/commons-io/commons-io/pom.xml'时,我得到的错误看起来与第一个非常相似,但实际上是不同的。添加exclude 'META-INF/maven/commons-io/commons-io/pom.properties'终于让一切正常。仍然不确定为什么我必须采取这些步骤。