Qué extraño que las otras respuestas aquí no respondan a su pregunta ... todos asumen que solo desea un directorio de activos, o se refieren a res / en lugar de activos /.
También necesito más de un directorio de activos.
Luché con el <aapt>módulo hormiga durante horas y horas y finalmente me di por vencido y me di cuenta de que hay una manera mucho más fácil.
Copié la <target name="-package-resources"...>etiqueta del archivo de compilación maestro que antusa, android_sdk_dir/tools/ant/build.xmly pegué la etiqueta en mi proyecto build.xml(debe pegar la etiqueta justo antes de build.xmlincluir el maestro , como build.xmlexplican los comentarios al final del proyecto prefabricado ), luego agregué una segunda sección para simplemente ejecutar zippara agregar los activos al archivo .ap_ (que se encuentra ${out.absolute.dir}/${resource.package.file.name}en ese punto en el archivo ant):
<target name="-package-resources" depends="-crunch">
<!-- only package resources if *not* a library project -->
<do-only-if-not-library elseText="Library project: do not package resources..." >
<aapt executable="${aapt}"
command="package"
versioncode="${version.code}"
versionname="${version.name}"
debug="${build.is.packaging.debug}"
manifest="${out.manifest.abs.file}"
assets="${asset.absolute.dir}"
androidjar="${project.target.android.jar}"
apkfolder="${out.absolute.dir}"
nocrunch="${build.packaging.nocrunch}"
resourcefilename="${resource.package.file.name}"
resourcefilter="${aapt.resource.filter}"
libraryResFolderPathRefid="project.library.res.folder.path"
libraryPackagesRefid="project.library.packages"
libraryRFileRefid="project.library.bin.r.file.path"
previousBuildType="${build.last.target}"
buildType="${build.target}"
ignoreAssets="${aapt.ignore.assets}">
<res path="${out.res.absolute.dir}" />
<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>
<!--
NEW XML STARTS HERE
-->
<exec executable="zip" failonerror="true">
<arg value="-r" />
<arg value="${out.absolute.dir}/${resource.package.file.name}" />
<arg value="my_assets_directory_1" />
<arg value="my_assets_directory_2" />
<arg value="my_assets_directory_3" />
</exec>
<!--
NEW XML ENDS HERE
-->
</do-only-if-not-library>
</target>
Este método tiene la ventaja de que tiene más libertad para definir la estructura de directorios de sus activos en el árbol de origen y en el apk (ya que puede hacerlo exec zipvarias veces con diferentes argumentos e incluso envolver zipun script que se ejecuta zipdesde múltiples directorios actuales en su árbol de origen). También tiene control de compresión por archivo (zip tiene una opción -0 para suprimir la compresión) y no necesita usar la etiqueta limitada de no compresión por extensión.
Tenga en cuenta que este antxml viene ANTES de zipalign en el proceso de compilación de hormigas, por lo que todavía obtenemos un archivo "compatible con zip" que satisface las necesidades de alineación de APK y Android Java.
En mi caso, tengo una aplicación basada en NDK y quiero acceder a estos activos solo desde el código C (donde cualquier ruta apk está bien). Si necesita usar las llamadas estándar de activos Java de Android para acceder a estos elementos, no estoy seguro de si deben estar o no en una ruta dentro de los activos con nombre zip / o no. Si es así, puede adaptar el truco anterior al execcrear una secuencia de comandos que se encuentre cden la carpeta del árbol de origen relevante y luego se ejecuta zip.
resoassets) es precisamente lo que no quiero hacer. Como dije en la pregunta, tantoengineygameproporciono activos que quiere enviar.