2011-02-07 8 views
13

Sviluppo un'app per Android utilizzando eclipse, lo Android Development Tools (ADT) plugin e lo maven-android-plugin.Includi dipendenze Maven in eclissi "Esegui come -> Applicazione Android" build

La creazione e l'installazione dell'applicazione sulla riga di comando (mvn install/adb install) funzionano correttamente, in particolare includono tutte le dipendenze specificate in pom.xml.

Distribuire l'applicazione su Android tramite eclipse (Esegui come -> Applicazione Android) non inserisce automaticamente le dipendenze nel file apk, anche se specificato nel pom.xml. Non posso dichiararli esplicitamente nella finestra di dialogo del progetto eclisse Build Path -> Libraries.

C'è un modo per rendere eclissi includono le dipendenze definite nel pom.xml senza definig due volte nel progetto Build-Path -> Biblioteche?

MODIFICA: Per chiarire: il progetto eclipse include una voce "Dipendenze Maven" con tutte le dipendenze specificate in pom.xml. Ma queste dipendenze non saranno incluse nell'apk durante l'installazione tramite "Esegui come -> Applicazione Android". Per includerli, ognuno deve essere aggiunto in più nella finestra di dialogo "Java Build Path -> Libraries". Questo è il dolore!

+0

suona come un bug o funzionalità mancante nel plugin, Maven sa come trattare con esso, ma il progetto sotto l'eclisse non lo fa. Si può fare un import "Maven" per Eclipse, che è aperto file-> import-> progetto Maven o qualcosa del genere e allora potrebbe aggiornare il percorso di generazione automaticamente? – codeScriber

+1

@codeScriber L'importazione di Maven funziona correttamente. Tutte le dipendenze appaiono all'interno della voce "Dipendenze Maven", quindi lo sviluppo non è il problema. Ma non avranno installato con l'applicazione (per l'emulatore) a meno che non sia esplicitamente aggiunti ogni vaso dependend (Aggiungi JAR esterni ...) alla scheda Librerie in Java finestra di dialogo percorso di generazione. – FrVaBe

+0

@ K.Claszen È vero. non appena ho aggiunto facebook come jar esterno, tutto ha iniziato a funzionare. Tuttavia, hai capito come risolvere questo problema in modo più "normale"? Voglio dire, è un po 'come uccidere il punto di avere Maven se devi aggiungere manualmente le tue libs. –

risposta

3

Forse dovresti guardare m2e-android, supponendo che tu stia già utilizzando M2Eclipse.

+0

Suoni davvero buoni! Lo proverò domani e darò un feedback (il tempo sta scadendo oggi). Grazie! – FrVaBe

+0

Hai fatto esperienza con questo plugin. Dopo l'installazione eclipse è appesa in "Building Workspace ..." molto spesso (almeno quando "Build automatically" è abilitato) e anche il processo di compilazione sembra in loop. La cosa peggiore è che le dipendenze non sono incluse nel file apk come previsto. – FrVaBe

+0

Vorrei contrassegnarlo come la risposta corretta ma poiché il plugin non include tutte le depdencision di progetto nel file apk e rallenta anche l'eclissi "Automaticall Build" non posso raccomandarlo per ora (supponendo che non l'abbia fatto eventuali errori). – FrVaBe

4

Ho attivato il -checkmark "Maven Dipendenze" in configurazione "Java Build Path" "Ordine e Esporta" nell'ambito di progetti e che sembra includere tutte le dipendenze Maven.

Queste dipendenze (ambito di compilazione) sono inserite nelle classi target/android (e ce ne sono molte, più comunemente istantanee di progetti interni, circa 10). Ho avuto qualche altra difficoltà ma probabilmente è legata al plugin di integrazione Android di m2eclipse (almeno su Windows 7).

per ottenere la mia impostato correttamente progetto Maven corsa ho dovuto:

sia di importazione come esperto di progetto o ...

pulire i file creati in precedenza Eclipse (Eclipse mvn: pulito, mvn Eclipse: Eclipse) , quindi attivare risoluzione dependecy Maven per quel progetto, esperto Java Build Path (gen -> bersaglio/android-classi, src -> bersaglio/classi, cartella di destinazione predefinita -> Android-classi) e l'esportazione Maven dipendenze (consentono segno di spunta).

Una cosa sono incappato in questo stato "Impossibile trovare * .apk!" errore durante l'esecuzione o il debug dell'applicazione Android. Potrei risolvere il problema utilizzando un jdk a 32 bit per l'ambiente di esecuzione utilizzato.

+0

Cosa intendi per _seems to include_? L'hai controllato? Come ho osservato, questo non include le librerie di terze parti "reali". (Non parlo di tutte le dipendenze transitive 'fornite' dell'oggetto com.google.android: android). – FrVaBe

Problemi correlati