安卓对JDK 6编译的jar文件进行索引会产生“坏类文件魔术”错误
我正在尝试使用以下命令对jar文件进行索引:
dx --dex --output=classes.dex JAR_file.jar
这给了我以下错误:
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
.....................etc
当我搜索时,我发现它们与问题this中出现的错误相同
是的,我在用JDK1.7编译我的项目。所以我下载了JDK1.6,并更改了eclipse的设置,使其使用JDK1.6
我是通过:窗口->;偏好->;然后我将编译器编译级别设置为1.6。最后,我将编译器配置为使用我下载的JRE6。我点击OK。我尝试再次运行我的项目,并生成了jar文件
当我再次运行命令对jar文件进行索引时。它仍然显示相同的错误。我错过了什么
注意:jar文件是我在eclipse中作为“插件”项目创建的一个包。以下是该项目的快照:
在我所指的问题中,公认的答案是,如果仍然存在相同的问题,那么必须确保每个类都编译正确。这是什么意思?我试着一次又一次地编译,但仍然得到同样的错误
# 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
提到here
# 2 楼答案
我创建了一个全新的项目(在将eclipse编译器更改为JDK1.6之后)。然后,去杠杆化工作正常