android – Gradle构建时在APK META-INF中复制的重复文件

前端之家收集整理的这篇文章主要介绍了android – Gradle构建时在APK META-INF中复制的重复文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在寻找 some of the answers这里发布的关于这个错误,但没有运气.我希望得到一些关于发生了什么的澄清.我的错误如下:

Error:Execution Failed for task ‘:app:transformResourcesWithMergeJavaResForDebug’.
com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in 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'
}

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

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

解决方法

我必须在packagingOptions {}中添加以下行
exclude 'Meta-INF/maven/commons-io/commons-io/pom.xml'
exclude 'Meta-INF/maven/commons-io/commons-io/pom.properties'

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

猜你在找的Android相关文章