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?
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:
Mettere il jar di Gson (nel mio caso,
gson-2.2.4.jar
) nella cartella `libsCliccate con il tasto destro e premete 'Aggiungi come libreria'
Assicurati che
compile files('libs/gson-2.2.4.jar')
sia nel tuo filebuild.gradle
(ocompile fileTree(dir: 'libs', include: '*.jar')
se stai usando molti file jar)Modifica: Usa
implementation files('libs/gson-2.2.4.jar')
(oimplementation fileTree(dir: 'libs', include: '*.jar')
) in Android Studio 3.0+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 sistemaDopo 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]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.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.Su Mac OS X:
Aggiungi il jar come libreria (trascina il jar su libs, fai clic con il tasto destro del mouse su add as lib)
Aggiungi la dichiarazione di compilazione a
build.grade
.Installare
gradle v1.6
(usare homebrew)Questo mi ha risolto.