Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Gradle将重复文件放入apk文件中_Android_Eclipse_Jar_Gradle - Fatal编程技术网

Android Gradle将重复文件放入apk文件中

Android Gradle将重复文件放入apk文件中,android,eclipse,jar,gradle,Android,Eclipse,Jar,Gradle,我使用的是Gradle1.10,android插件的版本是0.8.0。我的android项目需要这两个jar: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') }

我使用的是Gradle1.10,android插件的版本是0.8.0。我的android项目需要这两个jar:
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插件的bug还是gradle本身的bug?排除上述文件是否会导致任何问题?我只是排除了上面提到的JAR,还是那些META-INF文件中还有其他内容?我不想排除我的项目需要的任何东西

这里是杰克逊团队提供的一些信息

关于这一点,有各种各样的帖子,比如:

我在Eclipse和Ant中也使用了Jackson(目前我正在Studio中使用它,使用的解决方法与您使用的方法相同),我必须在命令中使用zip来重命名license.txt文件。在这篇文章中有关于整个事情的更多信息(包括使用zip重命名文件的示例)


我没有发现任何迹象表明重命名或排除这些文件会产生负面影响,并且在将Jackson与Eclipse和Ant一起使用的大约2年中,我从未遇到过任何问题。

首先,这不是gradle的错误。 它发生在MergeJavaResourcesTransform任务中:

正如我们所知,APK只是一个zip文件,所以当将META-INFO/xxx放入zip文件时,如果之前已经添加了该文件,我们就不能再放入它

而且META-INFO文件没有合并规则,所以我们只能在文件中添加名称等