2012-01-02 20 views
5

Sto cercando di utilizzare PhoneGap all'interno di un progetto di libreria Android. Il progetto di libreria compila bene, ma quando provo ad avviare un'attività che si estende DroidGap, ottengo questo erroreCome includere i file jar nel progetto della libreria Android

01-02 10:12:17.575: W/dalvikvm(316): Unable to resolve superclass of Lcom/***/***. 

Penso che questo sia perché il file phonegap.jar non è incluso nel file jar compilato del Android progetto di biblioteca. Ho provato a usare form per costruire ma non sembra funzionare.

Modifica: Sto creando una libreria Android che può essere utilizzata in altri progetti Android. Sto usando lo standard android library project ma le attività in questo progetto lib che ha esteso la classe DroidGap in phonegap.jar stanno andando in crash con l'errore di cui sopra.

+0

controllo questo fuori: http: // StackOverflow.it/a/6859020/28557 –

+1

sembra che la maggior parte delle persone non stia afferrando il fatto che il tuo JAR esterno si trova nel progetto della libreria, e quindi quando provi a fare riferimento al progetto della tua libreria da un altro progetto Android non può vedere i file JAR che il progetto della biblioteca dipende - avendo problemi simili io stesso è solo più complicato perché il mio file JAR è un'interfaccia JNI per alcune classi C native che voglio anche condividere su più progetti! –

risposta

0

creare una cartella "lib" nel progetto. metti il ​​tuo file .jar nella cartella lib. seleziona il tuo file .jar con il tasto destro del mouse, seleziona buid path ---> 'add to build'. aggiungerà il tuo file .jar. ora puoi usare queste classi di file .jar.

+0

Lo sto già facendo ma non sembra essere d'aiuto. Penso che funzioni bene quando hai a che fare con un normale progetto Android ma i file jar in un progetto di libreria Android non funzionano. – Ashok

+0

ho testato e sono in grado di aggiungere e utilizzare classi libreria phonegap come sopra. –

+0

Ci sono due progetti che sto usando, uno è un progetto Android e l'altro è un progetto di libreria Android. Devo includere phonegap.jar nel progetto della libreria Android. Il progetto Android utilizza il progetto della libreria Android e avvia un'attività nel progetto Android Lib, questo sembra rovinare le cose. Stai facendo lo stesso, questo funziona per te? – Ashok

0

Suggerirei di non creare manualmente la cartella "lib".

Invece:

clic destro Progetto -> Proprietà -

  • Selezionare Java Build Path

  • Assicurarsi biblioteche è la scheda selezionata in alto

  • Fare clic su Aggiungi JAR esterni

Poi trovare il vostro JAR ...

In sostanza, allo stesso modo si potrebbe aver aggiunto il PhoneGap.jar

+0

Stai suggerendo di non collegare il progetto della libreria Android, ma al link il file jar creato dal progetto della libreria. Non capisco come possa essere d'aiuto. Ho provato e non sembra aiutare – Ashok

+0

Dovrai modificare la tua domanda e spiegare di più con più specifiche ... Forse non capisco completamente cosa stai cercando di fare. Se si effettua il collegamento a un altro progetto di libreria che funzionerà ancora, si collegherà tale libreria e quindi si aggiungerà PhoneGap.jar nel modo descritto. – TryTryAgain

0

L'ADT (tool di sviluppo Eclipse Android plug-in) ha un supporto integrato per la creazione e il riferimento di progetti di biblioteca. Vedere l'esempio nella sezione 5 di questo tutorial.

0

Provare a cambiare il nome della cartella in libs anziché in lib.

+0

La cartella "libs" include automaticamente i JAR presenti nel progetto in cui si trovano. Tuttavia non li includerà automaticamente se si trovano solo nella directory libs del progetto condiviso. –

3

Temo che non sia ancora possibile. Il file jar risultato conterrà tutte le classi e le risorse definite nel progetto della libreria Android, ma non includerà file jar esterni aggiunti al percorso di build. Dovrai aggiungerli ai tuoi progetti Android finali usando quella libreria. È inoltre possibile trovare domande simili nel SO come this one

+0

La domanda/risposta collegata spiega in maggiore dettaglio. In pratica, i progetti di libreria condivisa sono semplici contenitori e wrapper. Alla fine, inserisce solo la fonte e le risorse nel progetto consumante; non copia in impostazioni o riferimenti bibliografici, quindi è necessario copiarli manualmente nel progetto di consumo. –

Problemi correlati