带有重复 Zip 输入错误的 Proguard

Posted

技术标签:

【中文标题】带有重复 Zip 输入错误的 Proguard【英文标题】:Proguard with Duplicate Zip entry error 【发布时间】:2015-08-25 04:45:58 【问题描述】:

当我应用proguard,然后在控制台,得到以下错误。请解决我的问题。

解决应用 progaurd 时重复 zip 输入错误。

控制台错误:

注意:有 157 个重复的类定义。

      (http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass)
Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate zip entry [commons-io-2.4.jar:META-INF/LICENSE.txt])
Warning:can't write resource [META-INF/NOTICE.txt] (Duplicate zip entry [httpmime-4.2.1.jar:META-INF/NOTICE.txt])
Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate zip entry [httpmime-4.2.1.jar:META-INF/LICENSE.txt])

有人帮我解决这个proguard问题吗?我在谷歌搜索了很多,但仍然找不到任何合适的解决方案。提前致谢。

【问题讨论】:

警告前的链接非常直接地解释了您的问题...proguard.sourceforge.net/manual/… @alfasin 我已经阅读了它。但是在这个文档中,我没有得到任何解决方案。 明确说明解决方案:从包含的 jar 中过滤掉这些资源。关于“如何”做这件事,这取决于你如何构建你的项目,rekire 在下面向你展示了如何使用 Gradle 来做这件事。 Here 是一个 Maven 示例,如果您使用其他任何东西 - 谷歌搜索应该不难。投票结束问题。 可能重复:***.com/questions/10397717/… 【参考方案1】:

由于您没有编写详细信息,因此我希望您使用 android Studio 和 Gradle 作为构建系统。将此块添加到您的 android DSL:

packagingOptions 
    exclude '.readme'
    exclude 'LICENSE.txt'
    exclude 'README.txt'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/LICENSE.txt'

您不需要所有这些,但它会起作用。这基本上会阻止构建系统包含一些文件。在您的情况下,一些无用的文本文件。

【讨论】:

以上是关于带有重复 Zip 输入错误的 Proguard的主要内容,如果未能解决你的问题,请参考以下文章

Android - Proguard 重复 zip 输入错误

android studio中的重复输入错误

java.net.SocketException:软件导致连接中止:套接字写入错误[重复]

带有动态错误消息的jquery验证添加方法[重复]

shutil make_archive 导致嵌套的 .zip 文件 [重复]

java.util.zip.ZipException:重复条目