运行时会自动生成这4个文件(build.xml,local.properties,projects.properties,proguard.cfg):
android更新项目--name TestApp --target 10 -p。
更新了project.properties
更新了local.properties
添加了文件./build.xml
更新了文件./proguard.cfg
但我希望“auto-gen”build.xml也包含以下“预编译”代码,有没有办法做到这一点?是否有一些“包含”文件或“模板”文件可以包含?
<target name="config">
<property name="config-target-path" value="${source.dir}/com/androidengineer/antbuild"/>
<!-- Copy the configuration file, replacing tokens in the file. -->
<copy file="config/Config.java" todir="${config-target-path}"
overwrite="true" encoding="utf-8">
<filterset>
<filter token="CONFIG.LOGGING" value="${config.logging}"/>
</filterset>
</copy>
</target>
答案 0 :(得分:13)
build.xml
工具生成的android
(至少在使用Android SDK r20时)包含以下代码:
<!--
Import per project custom build rules if present at the root of the project.
This is the place to put custom intermediary targets such as:
-pre-build
-pre-compile
-post-compile (This is typically used for code obfuscation.
Compiled code location: ${out.classes.absolute.dir}
If this is not done in place, override ${out.dex.input.absolute.dir})
-post-package
-post-build
-pre-clean
-->
<import file="custom_rules.xml" optional="true" />
因此,我创建其他目标或自定义现有目标的方法是使用这些新目标创建custom_rules.xml
文件。请注意,在我的测试中,目标需要嵌套在<project>
标记中,因此只需将生成的build.xml
的前两行复制到custom_rules.xml
,并且不要忘记关闭最后</project>
标记。由于custom_rules.xml
不会被android update
覆盖,您的更改将会持续存在,并且可以检入您选择的SCM工具。
答案 1 :(得分:3)
也许你可以查看这个问题的答案:
Does the ADT plugin automatically create an ant build file?
答案中有一段说......
或者,您可以直接从$ ANDROID_HOME / tools / lib / build.template复制build.xml模板,然后只需更改项目名称。
修改此文件并运行命令以查看它是否有效。
<强>更新强>
同时选中本文的“自定义构建”:http://www.androidengineer.com/2010/06/using-ant-to-automate-building-android.html
答案 2 :(得分:1)
在build.xml
本身,它告诉你如何做到这一点。请参阅文件中的以下注释:
<!--
***********************
****** IMPORTANT ******
***********************
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
in order to avoid having your file be overridden by tools such as "android update project"
-->
<!-- version-tag: 1 -->