使用dx.bat时出现了错误的类文件魔数

4

我需要使用命令行构建我的Android应用程序,当我到达必须使用dx.bat转换为Dalvik字节码的点时

dx.bat --dex --output=C:/local_programs/testProject/bin/classes.dex C:/local_programs/testProject/bin/classes/test/Android/cmd/

这个路径 "C:/local_programs/testProject/bin/classes/test/Android/cmd/" 是我的 .class 文件所在的地方。
它给了我这个错误。
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing AndroidTestActivity.class
...while processing AndroidTestActivity.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing R$attr.class
...while processing R$attr.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing R$drawable.class
...while processing R$drawable.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing R$id.class
...while processing R$id.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing R$layout.class
...while processing R$layout.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing R$string.class
...while processing R$string.class

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing R.class
...while processing R.class
7 warnings
no classfiles specified

我的 .class 文件生成得很好,据我所知它们没有损坏。

我发现有几个类似的问题,但都与我的设置不符,因为我不使用 build.xml(我理解它是 ant 构建器)。

我的问题是:我是否可以选择不使用 ant?


1个回答

15

你的类需要使用jdk 5或6进行编译。你可能正在使用7。如果这不起作用,你可能还需要确保每个单独的类都被正确编译,即使在不同的项目中也是如此。我在这里解决了我的问题。


确实,这个方法对我也起作用了。只是为了以后参考:有人声称更改proguard.bat可以解决问题。但是这种方法对我没有用,但它可能会帮助其他人解决其他情况下的问题。 - Arjan
这对我也奏效了。我的 Ant 编译输出了这些错误("bad class file magic..."),但仍然成功构建,然后在 ClassDefNotFoundException 上崩溃了。原来,使用 JDK 6 重新编译导致问题的 jar 文件解决了这个问题。 - grant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接