将类文件转换为dex文件

时间:2010-11-12 09:27:08

标签: android

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

5 个答案:

答案 0 :(得分:21)

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

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

“dx”命令包含在Android SDK中。命令的位置各不相同。尝试搜索:

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

“dx --dex”可以接受一些选项。例如,“ - no-strict”选项将跳过检查输入类文件的路径名是否与声明的包/类名匹配,因此如果使用此选项调用dx,则将获得WebService.class的不同结果。如果您想在Android和Java SE上使用jar文件,可能“--keep-classes”选项很有用。没有“--keep-classes”选项,dx命令用一个名为“classes.dex”的文件替换输入jar文件中的所有.class文件,但是使用“--keep-classes”选项,输入.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

答案 1 :(得分:4)

使用dx

答案 2 :(得分:2)

dalvik文档区域包含trivial example

编辑:链接已死。您可以在镜像here中找到源树副本here和格式化版本。

答案 3 :(得分:1)

对于ANT自动构建:

 <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>

这是我的经历。愿它有用。

答案 4 :(得分:0)

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