我正在使用gradle 1.10,android插件的版本是0.8.0。我的android项目需要这两个罐子:jackson-core-asl-1.9.11.jar
和jackson-mapper-asl-1.9.11.jar
。我这样添加文件:
dependencies {
compile files('libs/jackson-core-asl-1.9.11.jar')
compile files('libs/jackson-mapper-asl-1.9.11.jar')
}
在gradle构建期间,我收到一条错误消息,指出这两个文件在META-INF/ASL2.0
中重复。我通过排除以下文件解决了这个问题:
packagingOptions {
exclude 'META-INF/ASL2.0'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
}
我必须排除所有这些因为显然所有这些文件都存在重复文件。
我想知道为什么会出现这个问题。这是android插件或gradle本身的错误吗?可以排除上述文件导致任何问题吗?我只是排除上面提到的罐子,或者那些META-INF文件还有什么?我不想排除项目需要的任何内容
答案 0 :(得分:0)
以下是杰克逊队https://github.com/FasterXML/jackson-databind/issues/214
的一些信息在SO上有关于此的各种帖子,例如:Error generating final archive: Found duplicate file for APK: LICENSE.txt
我已经将Jackson与Eclipse和Ant一起使用(我目前在Studio中使用它与您使用的相同解决方法),并且我必须在命令上使用zip来重命名license.txt文件。在这篇文章Android Gradle plugin 0.7.0: "duplicate files during packaging of APK"中有关于整个事情的更多信息(包括使用zip重命名文件的示例)。
我没有发现任何迹象表明重命名或排除这些文件会产生负面影响,而且在使用Jackson和Eclipse和Ant的大约2年内我从未遇到过任何问题。
答案 1 :(得分:0)