如何在android中将类文件转换为dex文件? 有什么办法吗?
答案 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。
答案 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版