These 4 files (build.xml, local.properties, projects.properties, proguard.cfg) are auto-generated when running:
android update project --name TestApp --target 10 -p .
Updated project.properties
Updated local.properties
Added file ./build.xml
Updated file ./proguard.cfg
But I want the "auto-gen" build.xml to also include the following "pre-compile" code as well, is there a way to do that? Is there some "include" file or "template" file which can include that?
<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>
The build.xml
as generated by the android
tool (at least when using Android SDK r20) contains this piece of code:
<!--
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" />
So what I do to create additional targets or customize existing targets is to create a custom_rules.xml
file with these new targets. Note that in my tests the targets needed to be nested in a <project>
tag, so simply copy the first two lines of your generated build.xml
to custom_rules.xml
, and don't forget about the closing </project>
tag in the end. As custom_rules.xml
will not be overwritten by android update
your changes will be persistent and can be checked into your SCM tool of choice.
Maybe you can check the answer to this question:
Does the ADT plugin automatically create an ant build file?
in the answer there is a paragraph saying...
Alternatively, you can just copy the build.xml template directly from $ANDROID_HOME/tools/lib/build.template then just change the project name.
Modify this file and run the commands to see if it works.
Update
Also check "Customizing the build" of this article: http://www.androidengineer.com/2010/06/using-ant-to-automate-building-android.html
In build.xml
itself, it tells you how to do this. See the following comment from the file:
<!--
***********************
****** 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 -->
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With