今天在用ant调用dx把class打包成dex文件的过程中遇到些问题,记下来,以免以后忘记
首先是D:\workspace4\ant_test\build.xml:47: Execute failed: java.io.IOException: Cannot
run program "dx": CreateProcess error=2, ?????????
<exec executable="dx.bat">
首先是 Bad class file magic when using dx.bat这个错,这个是因为jdk版本不对,要用1.6的编译,我机器上是1.7的,在eclipse里如果装的1.7,可以选择用1.6的编译,但命令行我不知道如何操作,所以我重新下了一个1.6的,然后把1.7的卸载了,最后搞定
虽然上面这个错不报了,但又报了 [exec] class name () does not match path ()这个错,又折腾了半天,后来发现要在命令里上个参数--no-strict,完整的命令如下:
D:\workspace4\ant_test>dx --dex --no-strict --output=D:\workspace4\ant_test\bin\
classes.dex D:\workspace4\ant_test\bin
对应的ant脚本是
<target name="dex" depends="compile">
<exec executable="dx.bat">
<arg value="--dex" />
<arg value="--no-strict" />
<arg value="--output=${basedir}/bin/classes.dex" />
<arg value="${basedir}/bin" />
</exec>
</target>