Android 导出向导引发由重复条目 .DS_STORE 引起的 ZipException。有没有办法告诉 Proguard 和/或 Android 导出向导忽略 .DS_STORE 文件并解决这个问题?
这是详细的长篇故事:
我想为我的 Android 项目启用 Proguard。我从 Android 项目的 project.properties 中取消注释以下行
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
现在,当我尝试从 Eclipse 导出签名的 apk 时(右键单击项目 -> Android 工具 -> 导出签名的应用程序包),导出向导失败,返回无法导出应用程序。
从 Eclipse 的错误日志视图中,它确实出现了一个错误。通过双击它,这是堆栈跟踪:
org.eclipse.core.runtime.CoreException: Failed to export application
at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:318)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(ExportWizard.java:296)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(ExportWizard.java:233)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(ExportWizard.java:218)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: java.util.zip.ZipException: duplicate entry: .DS_Store
at java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:215)
at java.util.jar.JarOutputStream.putNextEntry(JarOutputStream.java:109)
at com.android.ide.eclipse.adt.internal.project.ExportHelper.addFileToJar(ExportHelper.java:407)
at com.android.ide.eclipse.adt.internal.project.ExportHelper.addFileToJar(ExportHelper.java:394)
at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:242)
... 4 more
所以看起来像 ZipException 被抛出,因为有多个 .DS_STORE 文件(它们是 MAC OS X 的隐藏系统文件)。