I'm working on some Ant scripts for an Android build system and have come across an element to call aapt. I have seen lots of examples with
exec executable="${aapt}"
but the ones that come out of the main_rules.xml file use a different format
<aapt executable="${aapt}"
command="package"
debug="${build.packaging.debug}"
manifest="AndroidManifest.xml"
assets="${asset.absolute.dir}"
androidjar="${android.jar}"
apkfolder="${out.absolute.dir}"
resourcefilename="${resource.package.file.name}"
resourcefilter="${aapt.resource.filter}">
<res path="${resource.absolute.dir}" />
<!-- <nocompress /> forces no compression on any files in assets or res/raw -->
<!-- <nocompress extension="xml" /> forces no compression on specific file extensions in assets and res/raw -->
</aapt>
I would like to rename the package using this element, but cannot find any documentation about how to use it. Does anyone know where I can find some?
Thanks
I highly doubt there is any documentation beyond the source code.
I couldn't find anything and ended up using the following which seems to work
In the new(er) version of the Android SDK, the ant build script works in a different way. It does not directly invoke the aapt command via an
exec
element but rather defines an aapt task. The latter one is implemented by the java classcom.android.ant.AaptExecTask
. This class only provides a subset of the aapt command line options.You can find a brief description of the mapping between aapt command line options and the ant parameters below as found in the source java doc:
As far as I found out, there is no way to provide the generic aapt options through this new build task. This seems to be possible only by taking a modified copy of the SDK's build.xml with replacements for the aapt invocations.
If anyone knows a better solution, I'd be glad to read about, too ;-)
EDIT: In even newer versions of the SDK the introduced renaming packages again: