2010-06-28 22 views
8

Si hago cambios en mi proyecto de biblioteca de Android que tenga que actualizar manualmente y, a veces limpios todos los proyectos que utilizan la biblioteca. ¿Esto es normal? ¿Hay alguna forma de evitar esto?proyectos de bibliotecas Android y tener que actualizar manualmente

+0

Creo que es normal, al menos si se usa Eclipse. Esto se debe a que el espacio de trabajo de Eclipse tiene una memoria caché de los recursos que utiliza en el proyecto, por lo que es necesario actualizar para "detectar" los cambios externos. – Cristian

Respuesta

0

Eso es cierto. Si tu lib crea un jar, que has agregado al proyecto de Android, necesitarás actualizarlo (también puedes hacer clic derecho y actualizar en la referencia del jar externo también para ahorrar tiempo).

0

tenía este mismo problema hace un par de semanas. No encontré la solución que quería, que era modificar las fuentes directamente en el proyecto de la biblioteca y los proyectos dependientes se actualizan automáticamente, pero sí encontré algo mejor que el caos de la constante renovación y limpieza.

La mejor manera que pude encontrar fue utilizar la carpeta de biblioteca enlazada desde el proyecto depende de que se está trabajando, de esa manera el proyecto ve los cambios en vivo. Cuando salte a otro proyecto dependiente, aún necesitará actualizar los archivos que se cambiaron en el otro proyecto (generalmente solo la carpeta src). Es posible que también deba actualizar el proyecto de la biblioteca si desea realizar cambios directos. Puede que no suene como una gran ayuda, pero si pasas grandes cantidades de tiempo en un solo proyecto dependiente (como ha sido mi caso hasta ahora), realmente ayuda.

+1

Su método es el antiguo método utilizado para compartir código entre proyectos. El problema es que pierdes la capacidad de compartir recursos. El objetivo de usar bibliotecas en primer lugar es permitir el intercambio de recursos (y, por lo tanto, la distribución de bibliotecas .jar agrupadas con recursos). – Vaiden

3

Encontré una solución para este problema. La idea básica es usar el creador de hormigas personalizado, ya que tiene la capacidad de actualizar cualquier recurso específico o espacio de trabajo completo en la creación limpia, manual o autoconstrucción.

Así que aquí están los pasos:

1) Crear un archivo de hormigas sencillo con un objetivo talón de vacío:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="android" > 
    <target name="refresh" /> 
</project> 

2) El nombre de "lib-refresher.xml" y colocarlo en la carpeta donde se encuentra el archivo .project de la aplicación.

3) Ahora van a eclipsar, encontrar el proyecto que utiliza la biblioteca androide (no propio proyecto de biblioteca).

4) Para este proyecto vaya a: Proyecto -> Propiedades -> Constructor

5) Crear nuevo constructor, seleccione tarea Ant, seleccione especificado "lib-refresher.xml", seleccione la carpeta de base de construcción.

6) importante - ficha Actualizar del Generador de tareas hormiga seleccione "recursos específicos" y seleccione proyecto depende de la biblioteca.

7) importante - En pestañas objetivo seleccionar "refrescar" objetivo para construir variantes: limpio, establecimiento manual, automático Generar.

8) importante - Guardar los cambios, mueva el nuevo constructor de hormigas personalizado a la parte superior de la pila de constructores.

Ahora todo el proyecto va a refrescar justo antes de la construcción y almorzando aplicación. Esto incluirá todos los cambios realizados en el proyecto de la biblioteca en el proyecto de la aplicación. Que es lo que se necesitaba

(Esto se puede hacer a la inversa: proyecto de biblioteca puede refrescar espacio de trabajo conjunto cada vez que se puso en marcha autobuild Esto puede ser un poco exagerado, pero puede resolver algunos casos más difíciles.).

+0

Trabajos. Debería ser aceptado – znat

1

tengo proyecto de stand en el espacio de trabajo (Biblioteca Android y Android de la aplicación) y cuando me he hecho ningún cambio en la biblioteca que tengo debe refrescar proyecto con aplicación, pero esto fijo mi problema:

(Application) project properties -> Java Build Path -> Tab Projects 

y allí he agregado mi biblioteca de Android.

Cuestiones relacionadas