将类文件转换为dex文件

如何将类文件转换为android的dex文件? 有什么办法吗?

Solutions Collecting From Web of "将类文件转换为dex文件"

使用dx 。

使用“–dex”选项调用“dx”命令,如下所示。

dx --dex --output=<output-file> <input-file> 

Android SDK中包含“dx”命令。 命令的位置不同。 尝试search:

 <SDK-HOME>/platform-tools/ <SDK-HOME>/platforms/<platform>/tools/ 

“dx –dex”可以接受一些选项。 例如,“–no-strict”选项将跳过检查input类文件的path名是否与声明的包/类名相匹配,所以如果使用此选项调用dx,则会得到不同的WebService.class结果。 如果你想在Android和Java SE上使用jar文件,“–keep-classes”选项很有用。 如果没有“–keep-classes”选项,dx命令会将inputjar文件中的所有.class文件replace为一个名为“classes.dex”的文件,但使用“–keep-classes”选项replace.class文件也会进入输出文件以及classes.dex。

 ex: dx --dex --keep-classes --output=output.jar input.jar 

我读了dx的源代码,并在下一页列出了一些解释的命令行选项。

dx –dex的用法:

http://darutk-oboegaki.blogspot.com/2011/03/usage-of-dx-dex-dx-dex.html

达尔维克文档区域包含一个简单的例子 。

编辑:链接已经死了。 你可以在这里find源代码树的副本, 在这里find一个镜像的格式化版本。

为darutk添加更多信息回答:
dx命令包含在Android SDK中
例如:D:\ Android \ AndroidSDK \ build-tools \ 23.0.1 \
用23.0.1是android版本

对于ANT自动build筑:

  <property name="dx" value="${android_sdk}/build_tools/18.1.0/dx" /> <target name="convert_jar_to_dex"> <apply executable="${dx}" failonerror="true" parallel="true"> <arg value="-JXms1024m" /> <arg value="-JXss1024k" /> <arg value="--dex" /> <arg value="--verbose" /> <arg value="--no-strict" /> <arg value="--num-threads=4" /> <arg value="--output=${basedir}/bin/output.dex" /> <fileset file="${basedir}/input.jar"/> </apply> </target> 

这是我的经验。 可能会有所帮助。