Android Studio: Aggiungere jar come libreria?

Sto cercando di utilizzare il nuovo Android Studio ma non riesco a farlo funzionare correttamente.

Sto usando la libreria Gson per serializzare/deserializzare gli oggetti JSON. Ma la libreria in qualche modo non è inclusa nella build.

Ho creato un nuovo progetto con solo una MainActivity. Ho copiato gson-2.2.3.jar nella cartella /libs e l'ho aggiunto come dipendenza della libreria (clic destro>Aggiungi come libreria). Questo include il jar in android studio in modo che possa essere referenziato dai file sorgente.

Quando provo a eseguire il progetto non può compilare così ho aggiunto:

compile files('libs/gson-2.2.3.jar')

alle dipendenze nel file .gradle. Dopo di che compila correttamente ma quando eseguo l'applicazione ottengo una ClassDefNotFoundException.

Qualcuno sa cosa sto facendo di sbagliato?

Soluzione

Ho lottato con la stessa cosa per molte ore, cercando di far funzionare nientemeno che il barattolo Gson. Finalmente l'ho risolto - ecco i passi che ho fatto:

  1. Mettere il jar di Gson (nel mio caso, gson-2.2.4.jar) nella cartella `libs

  2. Cliccate con il tasto destro e premete 'Aggiungi come libreria'

  3. Assicurati che compile files('libs/gson-2.2.4.jar') sia nel tuo file build.gradle (o compile fileTree(dir: 'libs', include: '*.jar') se stai usando molti file jar)

    Modifica: Usa implementation files('libs/gson-2.2.4.jar') (o implementation fileTree(dir: 'libs', include: '*.jar')) in Android Studio 3.0+

  4. Fai una build pulita (probabilmente puoi farlo bene in Android Studio, ma per essere sicuro ho navigato in un terminale nella cartella principale della mia applicazione e ho digitato gradlew clean. Io sono su Mac OS X, il comando potrebbe essere diverso sul vostro sistema

Dopo aver fatto le quattro cose di cui sopra, ha iniziato a funzionare bene. Penso che il passaggio 'Aggiungi come libreria'fosse quello che mi era sfuggito in precedenza, e non ha funzionato finché non l'ho pulito.

[Modifica - aggiunto il passo build.gradle che è anche necessario come altri hanno sottolineato]

Commentari (20)

IIRC, semplicemente usando "Add as library" non è sufficiente per compilare con il progetto.

Controlla l'aiuto di Intellij sull'aggiunta di librerie ad un progetto

La parte che dovrebbe interessarti di più è questa:

(In File > Project Structure) Apri le impostazioni del modulo e seleziona la scheda Dependencies.

Nella scheda Dependencies, clicca su add e seleziona Library.

Nella finestra di dialogo Choose Libraries, seleziona una o più librerie e clicca Add Selected.

Se la libreria non appare nella finestra di dialogo, aggiungila nelle impostazioni Librerie, proprio sotto Moduli.

Non dovresti più aver bisogno di aggiungere compile files(), e la libreria dovrebbe essere aggiunta correttamente al tuo progetto.

Commentari (4)

Su Mac OS X:

  1. Aggiungi il jar come libreria (trascina il jar su libs, fai clic con il tasto destro del mouse su add as lib)

  2. Aggiungi la dichiarazione di compilazione a build.grade.

  3. Installare gradle v1.6 (usare homebrew)

  • brew installa gradle
  • gradle -v
  • se non è v1.6, aggiornare homebrew
  1. gradle clean (rebuild android non ha funzionato)

Questo mi ha risolto.

Commentari (0)