【问题标题】:Duplicate files copied in APK META-INF/maven/org.apache.httpcomponents/httpmime/pom.xml在 APK META-INF/maven/org.apache.httpcomponents/httpmime/pom.xml 中复制的重复文件
【发布时间】:2017-03-30 06:19:34
【问题描述】:

我正在制作一个使用这些库的 android 应用程序:

compile "org.apache.httpcomponents:httpcore:4.4.4"
compile "org.apache.httpcomponents:httpmime:4.4.1"

但它给出了一个错误:

com.android.builder.packaging.DuplicateFileException:重复文件 复制到 APK META-INF/maven/org.apache.httpcomponents/httpmime/pom.xml 文件1: C:\Users\Vivek\projectX\app\libs\httpmime-4.4.1.jar 文件2: C:\Users\Vivek.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpmime\4.4.1\2f8757f5ac5e38f46c794e5229d1f3c522e9b1df\httpmime-4.4.1.jar

所以我搜索并找到了一个解决方案:

packagingOptions {
    exclude 'META-INF/maven/com.google.guava/guava/pom.properties'
    exclude 'META-INF/maven/com.google.guava/guava/pom.xml'
}  

但它再次显示相同的错误。有人知道我在做什么错吗?谢谢。

【问题讨论】:

  • 添加compile group: 'org.apache.httpcomponents', name: 'httpclient-android', version: '4.3.5.1' compile 'org.apache.httpcomponents:httpmime:4.3.5'
  • 我之前用过,还是不行。
  • 它给了我一个警告,如果出现问题,请用 jarjar 重新打包它以更改类包警告:依赖 org.apache.httpcomponents:httpclient:4.4.1 被忽略以进行调试,因为它可能与安卓提供的内部版本有冲突。如有问题,请用jarjar重新打包更改类包警告:依赖org.apache.httpcomponents:httpclient:4.4.1被忽略发布,因为它可能与Android提供的内部版本冲突。

标签: java android xml maven


【解决方案1】:

尝试在 build.gradle 中添加以下包装选项。

 packagingOptions {
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'httpcore-4.4.4'
    exclude 'httpmime-4.4.1'
}

如果你有同样的问题,你可以尝试像这样添加包装选项

  exclude 'META-INF/maven/org.apache.httpcomponents/httpmime/pom.xml'

更多信息请参考链接 refer Link

【讨论】:

  • 如果出现问题,请用jarjar重新打包更改类包警告:依赖org.apache.httpcomponents:httpclient:4.4.1被忽略调试,因为它可能与内部版本冲突由安卓提供。如有问题,请用jarjar重新打包更改类包警告:依赖org.apache.httpcomponents:httpclient:4.4.1被忽略发布,因为它可能与Android提供的内部版本冲突。
猜你喜欢
  • 2016-04-11
  • 1970-01-01
  • 2016-09-22
  • 2016-08-10
  • 2016-12-27
  • 2017-11-14
  • 2017-12-08
  • 1970-01-01
相关资源
最近更新 更多