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.
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