2011-05-04 6 views

Respuesta

33

¡El new Android Build System que está basado en Gradle admite carpetas de activos en proyectos de biblioteca!

con la hormiga construye en base todavía no es posible:

proyectos de bibliotecas no pueden incluir activos primas. (Ver docs)

pero podrías

+1

Sólo en caso de que no está claro (ya que no era para mí): No necesita configurar nada especial con Gradle en Android Studio: parece que los recursos de las bibliotecas se incluyen automáticamente. – user2808624

+0

@ user2808624 Sí, pero me gustaría añadir que probablemente deba declarar la dependencia en 'build.gradle' de su aplicación de consumo como' @ aar' para garantizar que la dependencia se incluya como 'aar' no solo como una 'jar'. Esto puede no ser necesario en todos los casos, pero lo he encontrado necesario la mayor parte del tiempo. Para estar seguro, utilizaría el sufijo '@ aar' cuando dependa de una biblioteca que requiera que se compartan sus recursos. Creo que esto es necesario cuando la biblioteca se implementa en Maven – Sakiboy

2

De Eclipse y ANT puede hacer referencia al misma carpeta de "activos" de múltiples proyectos. Esto permite que su árbol fuente tenga una copia única de los archivos de activos, pero los incluye en múltiples APK.

Ver Android: targeted res folders for debugging in eclipse

De ProjectA que era capaz de hacer referencia .. \ \ ProjectA Activos de ProjectB. En Eclipse (al menos en Windows, aún no lo he probado en Linux), tuve que crear una nueva variable para hacer referencia a .. \ ProjectA y usar esa variable en "Ubicación de la carpeta vinculada". Si intenté usar "..." en "Ubicación de carpeta enlazada", el eclipse no lo aceptaría.

11

Es posible poner en activos resultante frasco biblioteca pequeña corrección:
Put "custom_rules.xml" en su casa proyecto de biblioteca (cerca de la 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 empaquetará los recursos de su biblioteca en el bote resultante de la biblioteca. Como resultado, estos activos se incluirán en el archivo .apk resultante de su aplicación.

cuadros en Android SDK Herramientas de revisión en OSX 21.1.0

+0

Esto realmente funciona ... gracias – calinb

+0

Pero esto no lo hará con Eclipse, ¿o no? – nob

+0

bueno, esto debería funcionar si estás compilando con la hormiga – calinb

1

Para aquellos que utilizan IntelliJ IDEA, se puede realizar un cambio en la configuración de embalaje de su módulo de solicitud de inclusión de los activos depedent. Tenga en cuenta que esto se hizo en la versión 14.0.2 de la edición IntelliJ Community. ¡Mi módulo de aplicación principal ahora hereda los archivos de la carpeta de activos de mi proyecto de biblioteca como si estuvieran en el proyecto principal!

Haga clic derecho en el módulo de aplicación> Abrir módulos SEttings. Seleccione el nodo del árbol de Android en el módulo> Ficha de 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.

enter image description here

enter image description here

+0

Sé que no debes publicar comentarios de "gracias". ¡Pero gracias! Acabo de actualizar mi IntelliJ y mi biblioteca Desaparecieron los activos. –

0

inicio mediante la creación de proyectos lib androide, cerca después de la creación. esto va a autobuild prevert

terminal de usos cmd en las ventanas de comandos androide es archivo por lotes

agregar herramientas a la ruta C: \ Users \ user_bss> PATH =% PATH%; C: \ ADT-haz-ventanas- x86-20140321 \ SDK \ tools

Generar build.xml para hormigas proyecto de actualización androide -p C: \ Users \ user_bss \ Documentos \ Espacio de trabajo \ -n SDKAdvanced SDKAdvanced

libreta custom_rules.xml añadir el código de encima no olvide la etiqueta del final

plazo "depuración hormiga" o "liberación hormiga" para construir

verá classes.jar en dir bin esta es su lib lleno

Cuestiones relacionadas