Android - Proguard 重复 zip 输入错误

Posted

技术标签:

【中文标题】Android - Proguard 重复 zip 输入错误【英文标题】:Android - Proguard duplicate zip entry error 【发布时间】:2012-03-05 22:59:54 【问题描述】:

我正在尝试在使用 android 库项目android 应用程序 中使用 proguard,但出现以下错误:

java.io.IOException: Can't write 
    [/private/var/folders/Pg/PgUpPJQ-E5qxL7jX6kpdCE+++TI/-Tmp-/android_3140050575281008652.jar] 
    (Can't read [proguard.ClassPathEntry@1f8d244] 
    (Duplicate zip entry 
    [be.class == android_144638064543155619.jar:com/comp/dp/library/R$anim.class]))
at proguard.OutputWriter.writeOutput(OutputWriter.java:224)
at proguard.OutputWriter.execute(OutputWriter.java:120)
at proguard.ProGuard.writeOutput(ProGuard.java:391)
at proguard.ProGuard.execute(ProGuard.java:152)
at proguard.ProGuard.main(ProGuard.java:499)

我的 proguard.cfg 文件是 this 以及一些 -libraryjars 指的是 rt.jar 和几个其他依赖库。

我的猜测是这个问题与使用图书馆项目有关,并且 proguard 试图两次处理图书馆项目的条目。但我不确定我应该使用哪些选项来解决这个问题。

非常感谢任何建议/方向。

更新 1: 通过删除 -injars bin/classes 我能够解决这个问题。我的猜测是,因为 proguard 处理库项目和应用程序项目,所以库项目的 .class 文件被处理了两次。一次在库项目的bin/classes 文件夹中,另一次在应用程序项目的bin/classes 文件夹中。

【问题讨论】:

By removing the -injars bin/classes - 那在哪里? 【参考方案1】:

问题中的 Update 1 解决了我的问题,现在我可以运行我的应用程序了。

这个答案只是为了将问题标记为已回答,我可以在两天后完成。

【讨论】:

我的错误有点不同,但我没有“-injars”子句。请帮帮我,厌倦了这个! Proguard 返回错误代码 1。请参阅控制台警告:无法写入资源 [META-INF/MANIFEST.MF](重复的 zip 条目 [android-support-v4.jar:META-INF/MANIFEST.MF])警告:可以't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [library.jar:META-INF/MANIFEST.MF]) @l33t,抱歉,久违了,我什么都不能告诉你。 @TheHippo,也许你可以试试这个:将相同的 android-support-v4.jar 复制到你的库需要的地方。请让我知道它是否有效。 @500865 我得到了这个错误。请给我解决方案。无法写入资源 [META-INF/MANIFEST.MF](重复的 zip 条目 [android-support-v4.jar:META-INF/MANIFEST.MF])警告:无法写入资源 [META-INF/MANIFEST. MF](重复的 zip 条目 [library.jar:META-INF/MANIFEST.MF])【参考方案2】:

如果您收到重复的 zip 条目,这意味着它所说的内容,请打开罐子并检查是否有重复项。

例如检查你的 build.xml 不包含类似的东西

<zipfileset src="$file.reference.joda-time-2.2.jar" includes="**/*.class"/>
<zipfileset src="$file.reference.joda-time-2.2.jar" includes="**/*"/>

这将包括两次 .class 文件!

【讨论】:

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

Proguard 警告“无法写入资源 [META-INF/MANIFEST.MF](重复的 zip 条目)”

如何在android studio中启用proguard? [重复]

Proguard:有 210 个重复的类定义?

使用 ProGuard 和 Android 应用程序时资源重复

Android Studio中的proguard映射文件在哪里[重复]

Proguard 重复邮编条目