当前位置: 首页 > 知识库问答 >
问题:

Gradle将重复的文件放入apk文件

金谭三
2023-03-14

我使用的是Gradle1.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插件的bug还是gradle本身的bug?排除上述文件会不会造成什么问题呢?我只是排除了上面提到的JAR,还是在那些META-INF文件中还有其他的东西?我不想排除我的项目需要的任何东西

共有1个答案

汝彭薄
2023-03-14

我们知道,APK只是一个zip文件,所以当将meta-info/xxx放入zip文件时,如果之前已经添加了文件,就不能再放了。

并且没有元信息文件的合并规则,所以只能添加名称注意的文件等

 类似资料:
  • 使用带有以下的Android Gradle插件0.7.0: 给出错误: 今天早上在我更新Android Studio之前一切正常。有什么想法吗? 编辑:我可以通过运行以下命令来临时修复它: 直到所有的重复错误都消失了。

  • 我将使用Spring向我的Android应用程序添加RESTful Web服务支持,如下所述https://Spring.io/guides/gs/consulting-rest-android/。 这是顶级构建。gradle配置: 我做错了什么,怎么修复?

  • 我一直在查看这里张贴的关于这个错误的一些答案,但没有运气。我希望得到一些关于发生了什么的澄清。我的错误如下: 此外,我对这些帖子中给出的一些建议有点困惑。和之间的操作区别是什么?它们似乎可以互换,但表达了非常不同的想法。似乎我被要求在上传到应用商店时包括许可证,所以如果我在这里排除了它,以便编译应用程序,当我准备上传时,我应该在哪里包括它?我希望有人能更多地了解这里发生的事情。

  • 我想用我的Android应用程序作为Kafka的“生产客户端”。添加以下依赖项后: 我会收到以下错误消息: 错误:任务“:app:TransformResourcesWithMergeJavaResforDebug”执行失败。 com.android.build.api.transform.transformException:com.android.builder.packaging.dupli

  • 我正在尝试使用以下gradle构建文件构建一个Android测试 运行时,我收到以下错误: 错误:APK打包过程中的重复文件...存档中的路径: LICENSE. txt起源1:...... gradle/cach/artiface-24/filestore/jUnit/jUnit/4.11/jar/4e031bb61df09069aeb2bffb4019e7a5034a4ee0/junit-4.

  • 有一个spring boot应用程序,我尝试在S3目标存储桶的文件夹中放置一个文件。目标bucket/targetsystem文件夹/文件。csv 将从yml配置文件检索的每个文件的targetsystem文件夹名称将不同。 如果该文件夹未退出,则必须通过代码创建targetsystem文件夹,并将文件放在该文件夹下 据我所知,在S3桶中没有文件夹概念,所有文件都存储为对象。 阅读了一些文档,比如