gpt4 book ai didi

android - 使用 Ant 如何 dex 一个 jar 目录?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:05:16 24 4
gpt4 key购买 nike

我有一个充满 jars(felix 包)的目录。我想遍历所有这些 jar 并创建 dex'd 版本。我的目的是将这些 dex'd jar 中的每一个部署为独立的 apk,因为它们是 bundle 。如果我从错误的方向处理这个问题,请随时纠正我。

第一部分只是尝试为每个 jar 创建一个相应的 .dex 文件。但是,当我运行它时,我收到了来自 Ant 的“未指定资源”错误。

这是正确的方法,还是有更简单的方法来输入一个 jar 并输出该 jar 的 dex 版本? ${file} 是有效的,因为它在 echo 命令中吐出文件的名称。

<target name="dexBundles" description="Run dex on all the bundles">
<taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${basedir}/libs/ant-contrib.jar" />
<echo>Starting</echo>
<for param="file">
<path>
<fileset dir="${pre.dex.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<sequential>
<echo message="@{file}" />
<echo>Converting jar file @{file} into ${post.dex.dir}/@{file}.class...</echo>
<apply executable="${dx}" failonerror="true" parallel="true" verbose="true">
<arg value="--dex" />
<arg value="--output=${post.dex.dir}/${file}.dex" />
<arg path="@{file}" />
</apply>
</sequential>
</for>
<echo>Finished</echo>
</target>

最佳答案

试一试:

    <target name="dexBundles" description="Run dex on all the bundles">
<apply executable="${exec.dx}" dest="${post.dex.dir}/" parallel="false">
<arg value="--dex"/>
<arg value="--output="/>
<targetfile/>
<srcfile/>
<fileset dir="${pre.dex.dir}" includes="**/*.jar"/>
<mapper type="glob" from="*.jar" to="*.dex"/>
</apply>
</target>

它看起来像 ant apply task允许您在不需要 ant-contrib 的情况下迭代文件集(具体来说,该页面有一个在目录中查找 *.c 的示例,编译它们,并将它们重命名为指定目录中的 *.o 应该可以直接应用).不幸的是,您似乎将失去回显消息提供的可追溯性。

郑重声明,我相信错误消息实际上是由 dx.bat 而不是 ant 直接生成的,但我不确定,我也不知道为什么。

希望对您有所帮助。

关于android - 使用 Ant 如何 dex 一个 jar 目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13141575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com