android android-library

La carpeta de activos de la biblioteca de Android no se copia



android-library (5)

Comience por crear el proyecto lib de Android, cierre después de la creación. esto prevertirá la autocompilación

utilizar el terminal cmd en el comando de Windows Windows es un archivo por lotes

agrega herramientas a la ruta C: / Users / user_bss> PATH =% PATH%; C: / adt-bundle-windows-x86-20140321 / sdk / tools

Genere build.xml para el proyecto de actualización de Android ant -p C: / Users / user_bss / Documents / Workspace / SDKAdvanced -n SDKAdvanced

notepad custom_rules.xml agregue el código de arriba no olvide la etiqueta final

ejecuta "ant debug" o "ant release" para compilar

Verá classes.jar en bin dir. Esta es su biblioteca empaquetada.

Estoy creando una biblioteca de Android y tiene una carpeta de assets con imágenes. Cuando lo uso en otro proyecto, los activos no se copian.

¿Alguien mas ha tenido este problema?


Desde Eclipse y ANT puede hacer referencia a la misma carpeta de "activos" de múltiples proyectos. Esto permite que su árbol de origen tenga una sola copia de los archivos de activos, pero que se incluyan en múltiples APKs.

Ver Android: carpetas de resolución específicas para la depuración en eclipse

Desde ProjectA pude hacer referencia a .. / ProjectA / Assets de ProjectB. En Eclipse (al menos en Windows, todavía no he probado Linux), tuve que crear una nueva variable para hacer referencia a .. / ProjectA y usar esa variable en "Ubicación de carpeta vinculada". Si intentara utilizar ".." en el eclipse de "Ubicación de carpeta vinculada" no lo aceptaría.



Es posible poner activos en el contenedor de la biblioteca resultante mediante una pequeña corrección:
Ponga " custom_rules.xml " en la página principal del proyecto de su biblioteca (cerca del build.xml):

<?xml version="1.0" encoding="UTF-8"?> <project name="custom_rules"> <target name="-post-compile" if="${project.is.library}"> <echo>Post Compile: add assests from ${asset.absolute.dir} to ${out.library.jar.file}</echo> <jar destfile="${out.library.jar.file}" update="true"> <zipfileset dir="${asset.absolute.dir}" prefix="assets" excludes="**/*.java ${android.package.excludes}"/> </jar> </target>

Esto empacará los recursos de tu biblioteca en tu jarra de biblioteca resultante. Como resultado, estos activos se incluirán en el .apk resultante de su aplicación.

Comprobado en Android SDK Tools Revision 21.1.0 en OSX


Para aquellos que utilizan IntelliJ IDEA , puede realizar un cambio en la configuración de empaquetado de su módulo de aplicación para incluir activos dependientes. Tenga en cuenta que esto se hizo en la versión 14.0.2 de la edición comunitaria de IntelliJ. ¡Mi módulo de aplicación principal ahora hereda archivos de la carpeta de activos del proyecto de mi biblioteca como si estuvieran en el proyecto principal!

Haga clic con el botón derecho en el módulo de la aplicación> Abrir los ajustes del módulo. Seleccione el nodo del árbol de Android en el módulo> Ficha Empaquetado. Marque "Incluir activos de dependencias en APK"

Nota: nunca he usado Android Studio, pero creo que hay una configuración similar para esto en esa aplicación.