第一部分是尝试为每个jar创建一个相应的.dex文件.但是当我运行这个时,我得到一个“没有指定资源”的错误来自Ant.
这是正确的方法,还是有一个更简单的方法来输入一个jar并输出该jar的dex’d版本? ${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应该直接适用).不幸的是,看起来您将失去echo消息提供的可跟踪性.
为了记录,我相信错误信息实际上是由dx.bat直接生成的,但我不确定,我不知道为什么.
希望有所帮助.
总结以上是内存溢出为你收集整理的android – 使用Ant我怎么能dex一个jar目录?全部内容,希望文章能够帮你解决android – 使用Ant我怎么能dex一个jar目录?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)