一尘不染

具有ADK14的DX不良类文件魔术(cafebabe)或版本(0033.0000)

java

自转为ADK14以来,我一直无法在Windows 7系统上构建要发布的新apk。

构建失败,并显示为“失败,错误为1,转换为dalvik格式失败”,而控制台中填充了很多“
Dx错误类文件魔术(cafebabe)或版本(0033.0000)”。

完整的异常文本:

com.android.ide.eclipse.adt.internal.build.DexException: Conversion to Dalvik format failed with error 1
at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:740)
at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:204)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(ExportWizard.java:290)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(ExportWizard.java:229)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(ExportWizard.java:214)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

我正在构建一个使用大量库的老项目,因此大概问题与这一事实有关。转移到ADK14时,已经完成了建议的所有“修复属性”
/清理等操作(因为我很自然地遇到了所有这些问题),但是他们对此没有帮助。

所有的库都在相同的Android SDK和JDK / JRE版本上,所以这似乎不是问题,实际上,该应用很容易在debug中构建并安装在我的旧版本1.5
HTC Magic上-仅当我需要导出签名的应用程序包时,该包会崩溃。

[编辑]这是在Windows 7x64 PC上。我观察到将apk打包到我的Linux笔记本电脑(Lucid Lynx)上以获取完全相同的代码绝对没有问题。

有任何想法吗?对此感到非常沮丧。

注意

显然,此错误消息可能是由各种不同的问题触发的。我的特定问题与Java 6/7无关,因为我从来没有首先安装Java 7,而是将编译器兼容性设置为Java
6(当时我检查了该解决方案,就像我在其他地方看到的那样)。


阅读 291

收藏
2020-09-08

共1个答案

一尘不染

我终于找到了解决这个问题的方法。

如果您查看Proguard.bat(Android SDK \ tools \ proguard \ bin),则会发现以下行:

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*

将其替换为以下内容:

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9

这是一个愚蠢的老问题,实际上我已经意识到,现在我已经意识到自己以前见过。显然,Android SDK团队仍未解决此问题,当我全新安装Android
SDK时重新引入了该问题。

2020-09-08