2010-06-28 11 views
8

Se apporto modifiche nel mio progetto di libreria Android, devo aggiornare manualmente e talvolta pulire tutti i progetti che utilizzano la libreria. È normale? C'è un modo per aggirare questo?Progetti di libreria Android e dover aggiornare manualmente

+0

Penso che sia normale, almeno se si utilizza Eclipse. Questo perché l'area di lavoro di Eclipse ha una cache delle risorse che utilizza sul progetto, quindi richiede un aggiornamento per "rilevare" le modifiche esterne. – Cristian

risposta

0

Questo è vero. Se la tua lib crea un jar, uno che hai aggiunto al progetto Android dovrai aggiornarlo (puoi anche fare clic con il tasto destro del mouse e aggiornare sul riferimento del jar esterno anche per risparmiare tempo).

0

Ho avuto lo stesso problema un paio di settimane fa. Non ho trovato la soluzione che volevo, che era quella di modificare le fonti direttamente nel progetto della biblioteca e i progetti dipendenti si aggiornavano automaticamente, ma ho trovato qualcosa di meglio del caos di aggiornamento e pulizia costanti.

Il modo migliore che ho trovato era quello di utilizzare la cartella della libreria collegata dal progetto dipendente su cui si stava lavorando, in questo modo il progetto vede le modifiche in diretta. Quando si passa a un altro progetto dipendente, è comunque necessario aggiornare i file che sono stati modificati nell'altro progetto (in genere solo la cartella src). Potrebbe anche essere necessario aggiornare il progetto di libreria se si desidera apportare modifiche dirette. Potrebbe non sembrare un grande aiuto, ma se si spendono grandi quantità di tempo in un singolo progetto dipendente (come è stato finora il mio caso), è davvero d'aiuto.

+1

Il metodo è il vecchio metodo utilizzato per condividere il codice tra i progetti. Il problema è che si perde la possibilità di condividere risorse. L'intero punto di utilizzo delle librerie in primo luogo consiste nel consentire la condivisione delle risorse (e quindi la distribuzione delle librerie .jar in bundle con le risorse). – Vaiden

3

Ho trovato una soluzione alternativa per questo problema. L'idea di base è di utilizzare il generatore di formiche personalizzato, poiché ha la capacità di aggiornare qualsiasi risorsa specifica o tutto lo spazio di lavoro su una costruzione pulita, manuale o automatica.

Così qui sono i passi:

1) Creare un semplice file di formiche con un obiettivo stub vuoto:

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

2) il nome "lib-refresher.xml" e inserirlo nella cartella dove si trova il file .project dell'applicazione.

3) Ora vai su eclissi, trova il progetto che utilizza la libreria Android (non il progetto di libreria stesso).

4) Per questo progetto vai a: Progetto -> Proprietà -> Builder

5) Creazione di un nuovo costruttore, selezionare task Ant, selezionare specificato "lib-refresher.xml", selezionare la cartella di base di build.

6) importante - scheda Aggiorna del compito costruttore formica selezionare "risorse specifiche" e si seleziona biblioteca del progetto dipendente.

7) importante - in schede di destinazione selezionare "refresh" obiettivo per le varianti di build: Clean, Manuale del torso, Auto Genera.

8) importante - Salva le modifiche, spostare il nuovo costruttore formica personalizzato in cima costruttori dello stack.

Ora l'intero progetto verrà aggiornato prima dell'applicazione dell'edificio e del pranzo. Ciò includerà tutte le modifiche apportate al progetto della biblioteca nel progetto dell'applicazione. Qual è ciò che era necessario.

(questo può essere fatto il contrario: progetto di libreria può rinfrescare tutta la spazio di lavoro ogni volta che viene lanciato autobuild Questo può essere un po 'eccessivo, ma può risolvere alcuni casi più difficili.).

+0

Works. Dovrebbe essere accettato – znat

1

Ho progetto stand in area di lavoro (Biblioteca Android e App Android) e quando ho fatto tutti i cambiamenti in libreria i hanno devono aggiornare progetto con app, ma questo fissa il mio problema:

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

e là ho aggiunto la mia libreria Android.

Problemi correlati