2015-02-25 18 views
5

Ho un progetto di libreria in Android Studio. Voglio generare un file .jar per questa libreria. Ho bisogno del jar file contain/include all the dependencies di questo progetto di libreria.Creazione di file Jar in Android Studio

Il problema è che non sono riuscito a trovare un modo per generare un file jar. C'è un modo per generare un file jar per il mio progetto?

migliori saluti

+0

Ecco un esempio completo: http://stackoverflow.com/questions/21712714/how-to-make-a-jar-out-from-an-android-studio-project – Trifactor

risposta

1

Here è un esempio di Gradle compito che crea .jar da classes.jar.

classes.jar file può essere trovato nella cartella /build/intermediates/exploded-aar/.

Edit: Creare file jar per ogni progetto Android Librar y e distribuirli standalone. Per quanto riguarda le dipendenze richieste dai progetti di libreria - aggiungi quelle dipendenze nel progetto finale, dove verrà utilizzata la tua libreria.

Per esempio: si Android Library progetto MyLibProject, che ha seguito le dipendenze in build.gradle

dependencies { 
    compile "com.android.support:support-v4:19.+" 
} 

Quando si genera il progetto si otterrà classes.jar per MyLibProject, e quelli classes.jar conterrà solo classe da Progetto Biblioteche , ma non da com.android.support:support-v4:19.+.

Successivamente in un altro progetto si aggiunge classes.jar come dipendenza da libreria in build.gradle e si definiscono anche le stesse dipendenze come in MyLibProject.

E se hai ancora bisogno fatJar, guarda here come creare fatJar con Gradle.

+0

Fatto. Non crea un jar con il nome che ho assegnato in POM_ARTIFACT nel file gradle.properties. – user2498079

+0

L'idea principale: dopo aver creato il tuo progetto, otterrai il file classes.jar per ogni progetto di libreria Android. L'attività Gradle rinomina semplicemente questo file. –

+0

No, non è generalmente una cattiva idea. Crea file jar per ogni progetto di libreria Android e distribuiscili autonomamente. Per quanto riguarda le dipendenze richieste dai progetti di libreria: aggiungere tali dipendenze nel progetto finale, in cui verrà utilizzata la libreria :) –

1

Se si imposta il codice come semplice modulo Java in Gradle, quindi è molto semplice avere Gradle fornire un file jar con i contenuti. Quel file jar avrà solo il tuo codice, non le altre librerie Apache da cui dipende. Consiglierei di distribuirlo in questo modo; è un po 'strano raggruppare le dipendenze all'interno della tua libreria, ed è più normale che gli utenti di queste librerie debbano includere tali dipendenze da sole (perché altrimenti ci sono collisioni di quei progetti che stanno già collegando copie della libreria, forse di versioni diverse). Inoltre, si evitano potenziali problemi di licenza in merito alla ridistribuzione del codice di altre persone se si pubblicasse la libreria.

prendere il codice che ha anche bisogno di essere compilato per un barattolo, e spostarlo in un modulo separato pianura Java in Android Studio:

File menu > New Module... > Java Library 
Set up the library, Java package name, and class names in the wizard. (If you don't want it to create a class for you, you can just delete it once the module is created) 
In your Android code, set up a dependency on the new module so it can use the code in your new library: 
File > Project Structure > Modules > (your Android Module) > Dependencies > + > Module dependency. See the screenshot below: 

enter image description here

Scegliete il modulo dalla lista nella finestra di dialogo che si apre:

enter image description here

Speriamo che il progetto dovrebbe essere la costruzione normalmente ora. Dopo aver creato una build, un file jar per la libreria Java verrà inserito nella directory build/libs nella directory del modulo.Se si vuole costruire il file jar a mano, è possibile eseguire il suo compito build file jar dalla finestra Gradle:

enter image description here

articolo oroginal qui: How to make a .jar out from an Android Studio project

Problemi correlati