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 `libs
Cliccate con il tasto destro e premete 'Aggiungi come libreria'
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+
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]
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.
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.