当前位置: 首页 > 面试题库 >

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

谭琛
2023-03-14
问题内容

自转为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(当时我检查了该解决方案,就像我在其他地方看到的那样)。


问题答案:

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

如果您查看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时重新引入了该问题。



 类似资料:
  • 问题内容: 我正在用android开发游戏,但遇到了问题。我的游戏在另一台计算机上可以正常运行,因此我将该项目委托给svn服务器,以便在新的Windows 7 64位计算机上使用。我在具有颠覆性的日食的新计算机上签了字。显然,我在构建路径方面存在一些问题,因此我修复了这些问题,并且该项目没有错误。当我在运行android 2.3.3的模拟器上运行它时,它在启动时崩溃,主要活动为ClassNotFo

  • 问题内容: 当我必须使用dx.bat转换为Dalvik字节码时,我需要使用命令行来构建我的Android应用程序 我的.class所在的路径是“ C:/ local_programs / testProject / bin / classes / test / Android / cmd /”。 它给了我这个错误 我的.class是按应有的方式生成的,据我所知,它们没有损坏。 我发现了这个问题的几

  • 尝试在VS 2017中构建cordova应用程序时收到以下构建输出: MSBUILD:cordova生成错误:分析错误: MSBUILD:cordoa-build错误:不支持的类文件版本52.0 MSBUILD:cordova生成错误:。。。在解析com/google/android/gms/StrictVersionMatcherPlugin时。班 MSBUILD:cordova生成错误:1错误

  • 问题内容: 我继承了一个使用Spring的应用程序。原始开发人员不可用。Spring jar文件只是“ spring.jar”,因此文件名中没有version#对我有帮助。我想下载对应于jar文件的Spring源代码。MANIFEST.MF文件具有“ Spring- Version:1.2”,但是不够精确。我看过版本1.2.1和1.2.9,它与正确版本不符。关键是有一个从中调用的方法,它似乎不在1

  • 我正在建立一个和机器人NDK合作的项目。到那时,我必须使用实验性的Gradle插件。Gradle同步没有错误,make也没有错误。但当我尝试“运行应用程序”时,Gradle给出了以下错误信息: 意外的顶级异常: 错误:com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.00