我尝试使用以下命令来dexify一个jar文件:
dx --dex --output=classes.dex JAR_file.jar
这给了我以下错误:
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
.....................etc
当我搜索时,我发现它们与 this 中出现的错误相同。问题
是的,我正在使用 JDK 1.7 编译我的项目。所以我下载了 JDK 1.6,并更改了 eclipse 的设置以使其使用 JDK 1.6。
我通过以下方式做到了这一点:窗口->首选项->编译器,然后将编译器兼容级别设置为 1.6。最后,我配置了编译器以使其使用我下载的 JRE6。我单击“确定”。我尝试再次运行我的项目,并生成 jar 文件。
当我再次运行该命令来对该 jar 文件进行索引化时。它仍然显示相同的错误。我缺少什么?
注意:jar 文件是我在 eclipse 中作为“插件”项目创建的包。这是该项目的快照:
在我提到的问题中,公认的答案是,如果您仍然遇到同样的问题,那么您必须确保每个类都正确编译。这意味着什么?我尝试一次又一次地编译,但仍然遇到相同的错误。
最佳答案
如果你查看 Proguard.bat (Android SDK\tools\proguard\bin),你会发现以下行:
调用 %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*
将其替换为以下内容:
调用 %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
提到here
关于android - 对 JDK 6 编译的 jar 文件进行 Dex 化时出现 "bad class file magic"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17977692/