android - Gradle 将重复文件放入 apk 文件中

标签 android eclipse jar gradle

我使用的是 gradle 1.10,android 插件的版本是 0.8.0。我的 android 项目需要这两个 jar:jackson-core-asl-1.9.11.jarjackson-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本身的错误?排除上述文件会导致任何问题吗?我只是排除了上述 jar ,还是那些 META-INF 文件中还有其他内容?我不想排除我的项目需要的任何东西

最佳答案

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

enter image description here

众所周知,APK只是一个zip文件,所以当将META-INFO/xxx放入zip文件时,如果之前已经添加过文件,我们不能再次放入。

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

enter image description here

关于android - Gradle 将重复文件放入 apk 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21547438/

相关文章:

java - 运行带有多个参数的 Jar 文件

android - 列出我的 Android 主屏幕上的快捷方式

java - 用于 XML 解析的 Android SimpleXML 库

Android SupportLib - CoordinatorLayout 中的 FrameLayout 与 AppBarLayout 占用整个屏幕高度

java - 在 Eclipse 中创建 JTwain 小程序

java - 无法访问 Web 项目上 jar 文件中的类

javascript - phonegap Android 中的 pdf 查看器

Eclipse 中的 C 代码返回对符号 cvSaveImage 的 undefined reference

java - 无法从 Java 独立项目中的 ATL EMFTVM 转换读取模块

java - 静态全局变量无法解析