2011-05-27 9 views
6

Ho estratto una serie di funzionalità dalla mia app in una libreria. Il problema è che mi piacerebbe utilizzare le classi della libreria sia nel codice di produzione che nei test. Il problema è che la mia app, la mia libreria e il codice di test sono moduli separati, quindi sia il codice dell'app che il codice di test devono dipendere dalla libreria. Quando provo a compilare il modulo di prova, ottengo il seguente errore:Come posso importare una libreria Android e usarla sia nel codice di produzione che nei test?

UNEXPECTED TOP-LEVEL EXCEPTION: 
java.lang.IllegalArgumentException: already added: (some class) 

E 'criptico, ma sta cercando di dire che ho cercato di aggiungere la stessa classe al file .dex più di una volta. Non è troppo sorprendente poiché il codice di test dipende dal codice della libreria e dall'app in fase di compilazione, che dipende anche dalla libreria in fase di compilazione. Come posso impostare le mie dipendenze (o cambiare il mio codice) per evitare questo?

NOTA: Sto usando IntelliJ IDEA 10,5 CE, quindi uso la loro terminologia, ma penso che il problema sia almeno concettualmente IDE-agnostico.

risposta

0

Ciao Credo che lo stesso barattolo sia stato aggiunto più volte in modi diversi.

ci sono due modi di mettere vaso nel progetto

Right on Project->Properties->Java Build Path->Add Jars-> 
Right on Project->Properties->Java Build Path->Add External jars-> 

prima rimuovere tutti i vasi. all'interno della cartella dell'applicazione crea una cartella in cui sono presenti tutti i jar necessari.

Right on Project->Properties->Java Build Path->Add Jars-> select your project folder and select the jar file 

Grazie Deepak

+0

Grazie per la risposta, Deepak. Il mio problema è leggermente diverso, perché la mia libreria non è una semplice .jar. È un progetto di libreria Android, quindi l'ho importato come modulo separato e ho aggiunto una dipendenza del modulo. – Lyudmil

2

Si tratta di un bug in IDEA, abbiamo presentato un problema per esso, please watch/vote.

+0

Grazie mille. Quando verrà risolto accetterò la tua risposta. – Lyudmil

Problemi correlati