studio - Come posso utilizzare JAR esterni in un progetto Android?




export jar from android studio (8)

Attualmente sto usando l'SDK 20.0.3 e nessuna delle precedenti soluzioni ha funzionato per me.

La ragione per cui hessdroid funziona dove hess ha fallito è perché i due file jar contengono java che è compilato per diverse macchine virtuali. Il codice byte creato dal compilatore Java non è garantito per l'esecuzione sulla macchina virtuale Dalvik. Il codice byte creato dal compilatore Android non è garantito per l'esecuzione sulla macchina virtuale Java.

Nel mio caso ho avuto accesso al codice sorgente ed è stato in grado di creare un file jar Android utilizzando il metodo che ho descritto qui: https://stackoverflow.com/a/13144382/545064

Ho creato un progetto Android e aggiunto un JAR esterno (hessian-4.0.1.jar) al mio progetto. Ho quindi aggiunto il JAR al percorso di build e l'ho controllato in Order and Export.

Ordine ed esportazione vengono ignorati e sembra che tutte le classi del JAR esterno manchino in fase di runtime.

C'è un trucco per includere correttamente le classi necessarie da un JAR esterno quando si costruisce un'applicazione Android usando il plugin Eclipse? Non voglio usare formica o Maven.


Ho scoperto che non sono stato abbastanza buono nella mia traccia dello stack, il problema non è che il JAR esterno non è incluso.

Il problema è che sulla piattaforma Android mancano javax.naming. * E molti altri pacchetti che il JAR esterno ha anche delle dipendenze.

L'aggiunta di file JAR esterni e l'impostazione di Order ed Export in Eclipse funzionano come previsto con i progetti Android.


La copia del file .jar nella cartella del progetto Android non è sempre possibile.
Soprattutto se si tratta di un output di un altro progetto nel tuo spazio di lavoro e continua ad essere aggiornato.

Per risolvere questo problema devi aggiungere il jar come file collegato al tuo progetto, invece di importarlo (che lo copierà localmente).

Nell'interfaccia utente, scegli:

Progetto -> Importa -> File System -> yourjar.jar -> (area Opzioni) Avanzate -> Crea collegamento nell'area di lavoro.

Il collegamento è salvato nel file .project :

<linkedResources>
    <link>
        <name>yourjar.jar</name>
        <type>1</type>
        <locationURI>PARENT-5-PROJECT_LOC/bin/android_ndk10d_armeabi-v7a/yourjar.jar</locationURI>
    </link>
</linkedResources>

PARENT-5-PROJECT_LOC significa relativo al file di progetto, 5 directory su (../../../../../).

Quindi aggiungilo alle librerie:
Progetto -> Proprietà -> Percorso build Java -> Librerie -> Aggiungi Jar -> yourjar.jar

Nella stessa finestra scegli la scheda Ordine ed Esporta e contrassegna il tuo barattolo in modo che venga aggiunto all'apk.


Sì, puoi usarlo. Ecco come:

  1. Il tuo progetto -> tasto destro -> Importa -> File System -> yourjar.jar
  2. Il tuo progetto -> tasto destro -> Proprietà -> Percorso build Java -> Librerie -> Aggiungi Jar -> yourjar.jar

Questo video potrebbe essere utile in caso di problemi.


Se utilizzi Android Studio, procedi come segue (ho copiato e modificato la risposta @Vinayak Bs):

  1. Seleziona la vista Progetto nella vista laterale Progetto (anziché Pacchetti o Android)
  2. Crea una cartella chiamata libs nella cartella principale del tuo progetto
  3. Copia i tuoi file JAR nella cartella libs
  4. La vista laterale verrà aggiornata e i file JAR verranno visualizzati nel progetto
  5. Ora fai clic con il pulsante destro del mouse su ciascun file JAR che desideri importare, quindi seleziona "Aggiungi come libreria ...", che lo includerà nel tuo progetto
  6. Dopodiché, tutto ciò che devi fare è fare riferimento alle nuove classi nel tuo codice, ad es. import javax.mail.*

So che l'OP termina la sua domanda con riferimento al plugin Eclipse, ma sono arrivato qui con una ricerca che non ha specificato Eclipse. Quindi qui va per Android Studio:

  1. Aggiungi il file jar alla directory libs (come copia / incolla)
  2. Fai clic con il jar destro del mouse sul file jar e seleziona "Aggiungi come libreria ..."
  3. fare clic su "OK" nella finestra di dialogo successiva o rinominato se si sceglie di.

Questo è tutto!


in Android Studio se si utilizza Gradle

aggiungi questo a build.gradle

compile fileTree(dir: 'libs', include: ['*.jar'])

e aggiungi il file jar alla cartella libs


Per Eclipse

Un buon modo per aggiungere JAR esterni al tuo progetto Android o qualsiasi progetto Java è:

  1. Crea una cartella chiamata libs nella cartella principale del tuo progetto
  2. Copia i tuoi file JAR nella cartella libs
  3. Ora fai clic con il pulsante destro del mouse sul file Jar e quindi seleziona Build Path> Aggiungi a Build Path , che creerà una cartella denominata "Biblioteche di riferimento" all'interno del progetto

    In questo modo, non perderai le tue librerie a cui fai riferimento sul tuo disco fisso ogni volta che trasferisci il progetto su un altro computer.

Per Android Studio

  1. Se sei in Android View in project explorer, cambialo in Project view come sotto

  1. Fare clic con il tasto destro del mouse sul modulo desiderato in cui si desidera aggiungere la libreria esterna, quindi selezionare Nuovo> Directroy e denominarlo come " libs "
  2. Ora copia il blah_blah.jar nella cartella ' libs '
  3. Fai clic con il tasto destro su blah_blah.jar, quindi seleziona " Aggiungi come libreria .. ". Questo aggiungerà e entrerà automaticamente in build.gradle come file di compilazione ('libs / blah_blah.jar') e sincronizzerà il gradle. E hai finito

Nota: se si utilizzano librerie di terze parti, è preferibile utilizzare le dipendenze transitive in cui lo script Gradle scarica automaticamente il JAR e il JAR di dipendenza quando viene eseguito lo script gradle.

Es: compila "com.google.android.gms: play-servizi-annunci: 9.4.0"

Maggiori informazioni sulla gestione delle dipendenze di Gradle





class-library