2013-02-07 6 views
8

Ho creato un progetto di libreria per la mia app. Quando provo ad aggiungere la libreria a un progetto, ottengo l'errore seguente quando si tenta di eseguirlo:

[2013-02-07 04:51:26 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/actionbarsherlock/R$attr; 
[2013-02-07 04:51:26 - testfromlibrary] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/actionbarsherlock/R$attr; 

ho aggiunto la biblioteca HoloEverywhere alla mia biblioteca, mentre ho aggiunto la biblioteca ActionBarSherlock a HoloEverywhere. Sto usando Eclipse su Windows 7.

Anche se ho aggiornato l'SDK all'ultima versione, riavviato Eclipse e pulito i vari progetti, l'errore persiste.

Qualcuno ha qualche idea su come risolvere questo errore? Il mio bin dir non è incluso nel percorso di compilazione sotto proprietà, e ho provato il deleting the bin folder del tutto.

Grazie!

risposta

5

Ho individuato la causa dell'errore in/bin/classes. Se ho eliminato la directory/classes prima di eseguire l'app, l'app si compilerebbe ed eseguirà. Ovviamente, quando ho tentato di esportare effettivamente l'app, la directory/classes sarebbe tornata e con essa l'errore.

La soluzione al mio problema era installare l'ultima versione di Eclipse. Quando esporto o eseguo l'app attraverso l'ultima installazione di Eclipse, la cartella/classes non viene visualizzata ora.

+0

La soluzione al mio problema era che ho cancellato i file jar copiati nella cartella lib del progetto. Ho importato esplicitamente i jar esterni nel percorso di build. –

1

Ho avuto lo stesso problema oggi. Ho cancellato il file .apk all'interno di/bin, sembrava che lo risolvesse.

+0

Ciao @ Matteo, grazie per la risposta. Come accennato in precedenza, ho risolto il problema installando l'ultima versione di Eclipse. –

8

Questo problema mi succede quando creo una libreria in congiunzione con actionbarsherlock. In questo caso l'eclissi crea la R da sherlock nella mia libreria e nel progetto che la usa.

La soluzione elimina nella cartella bin della libreria solo la cartella actionbarsherlock che contiene le classi R. Questo inst crea più ed è presente solo nella tua app di progetto.

3

il problema per me erano file di classe duplicati. Ho avuto sia il pacchetto stesso e il jar sdk del pacchetto (nella cartella libs) nello stesso progetto.

2

assicurarsi che entrambi i progetti (la biblioteca e l'applicazione) non hanno lo stesso packagename (all'interno del AndroidManifest)

18

ho scoperto che se sono entrato in proprietà -> Java Build Path -> Ordine e di esportazione e rimosso le librerie private di Android, quindi il mio progetto ha funzionato bene. C'era un altro supporto v4 jar in contrasto con gli sherlock della barra delle azioni supporto libreria v4

+1

ha funzionato per me. Grazie! – mboy

3

Questo mi è successo dopo aver cambiato un normale progetto Android in un progetto di libreria per usarlo per un set di split di progetto gratuito/a pagamento su.

L'esecuzione di uno dei progetti gratuiti/a pagamento provocherà un errore di OP.

Il problema riguardava la compilazione quando il progetto di base era un progetto normale e non un progetto di libreria. Basta pulire lo spazio di lavoro e ricostruire tutti i progetti. La vecchia spazzatura della compilation verrà rimossa e tutto verrà compilato nelle librerie corrette. Prova a rieseguire il progetto che ha dato l'errore e tutto dovrebbe andare bene ora.

0

Rimuovi tutte le librerie da Percorso di creazione e importa il progetto di libreria che desideri implementare. Funziona bene ..

0

È possibile utilizzare Tattletale

Ti aiuta a identificare le classi duplicate nei file JAR.

Spero che aiuti.

0

Per Android Studio - Ho rimosso le importazioni .jar duplicate ed è stato risolto.

Dettagli: ho avuto un app che ha avuto un/cartella comune di base e poi due cartelle che ha ereditato da quella - una versione gratuita ea pagamento della app. Il problema si è verificato quando avevo la cartella/comune e la cartella/free che includevano entrambi lo stesso file jar di crashlytics nella struttura del progetto.

0

Per me, la soluzione è stata eliminare ogni file JAR nella cartella/cartella "bin".

0

Se il progetto fa riferimento a un progetto di libreria, verificare se il progetto di libreria ha le stesse librerie che si stanno utilizzando nel progetto ma versioni diverse. Usa le stesse versioni ovunque e tutto dovrebbe essere ok!