Aggiunta di una libreria esterna in Android Studio


119

Voglio aggiungere la libreria esterna https://github.com/foursquare/foursquare-android-oauth alla mia applicazione Android (utilizzo Android Studio, le istruzioni fornite dall'autore lib per Eclipse non funzionavano per Android Studio).

Ho provato a farlo con Maven, quindi in File-> Struttura del progetto-> Dipendenze ho aggiunto com.foursquare:foursquare-android-nativeoauth-lib:1.0.0ma Gradle Sync fallisce:

Error:Failed to find: com.foursquare:foursquare-android-nativeoauth-lib:1.0.0

Quando provo a creare la mia app (senza correggere l'errore precedente perché non so come) ottengo:

Error:A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugCompile'.
> Could not resolve com.foursquare:foursquare-android-nativeoauth-lib:1.0.0.
 Required by:
    ForSquaresOnly:app:unspecified
   > Could not parse POM http://jcenter.bintray.com/com/foursquare/foursquare-android-nativeoauth-lib/1.0.0/foursquare-android-nativeoauth-lib-1.0.0.pom
     > Could not find any version that matches com.foursquare:parent:1.0.0.

Qualche altro modo per importare questa libreria? Posso semplicemente copiare e incollare il codice sorgente nella mia sorgente o creare un JAR da esso?

BTW: se si verificano problemi, vedere questa domanda (ho riscontrato questo problema dopo l'importazione): Manifest merger failed: uses-sdk: minSdkVersion 14


Risposte:


96

Prova questo:

File> Project Structure> Dependencies Tab> Add module dependency( scope = compile)

Dove la dipendenza del modulo è la cartella Android della libreria del progetto.


2
Lo so per esperienza e ispezione ... Ma ci sono documenti disponibili: developer.android.com/sdk/installing/studio-build.html
malcubierre

26
Come si può farlo SENZA copiare? La libreria viene utilizzata da altri progetti non Android e viene regolarmente aggiornata. Se copia la fonte, le modifiche all'originale non verranno visualizzate. Non è questo tipo di stupido?
Brian Reinhold

1
dov'è l'opzione Struttura del progetto?
zulkarnain shah

2
È stata rilevata la dipendenza del modulo ass ma poi è visualizzata la finestra di dialogo "Scegli moduli \ nSeleziona i moduli da cui dovrebbe dipendere il modulo corrente: \ nNiente da mostrare \ n [Ok] [Annulla]". Impossibile selezionare la libreria scaricata.
David162795

1
Ho aggiunto una libreria esterna in questo modo e ho ricevuto un errore "Impossibile risolvere la dipendenza per ': app @ buildTypeUnitTest / compileClasspath': Impossibile risolvere il progetto: zip_file." Il codice generato in dipendenza è `progetto di implementazione (': zip_file')`. Inoltre, sto usando "com.android.tools.build:gradle:3.2.0-rc03" e https \: //services.gradle.org/distributions/gradle-4.6-all.zip
Nikola

208

Prova uno di questi approcci:

Approccio 1)

1- Scegli la vista del progetto

inserisci qui la descrizione dell'immagine

2- Copia il tuo file JAR nell'app -> cartella lib

inserisci qui la descrizione dell'immagine

3- Fare clic con il pulsante destro del mouse sul file JAR e scegliere Aggiungi come libreria

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

4- Controllalo in build.gradle

inserisci qui la descrizione dell'immagine


Approccio 2)

1- File -> Nuovo -> Nuovo modulo

inserisci qui la descrizione dell'immagine

2- Importa pacchetto .JAR / .AAR

inserisci qui la descrizione dell'immagine

3- Sfoglia il tuo file JAR

inserisci qui la descrizione dell'immagine

4- Fine

5- File -> Struttura del progetto -> Dipendenze

inserisci qui la descrizione dell'immagine

6- Fare clic sul pulsante + e quindi su Module Dependency

inserisci qui la descrizione dell'immagine

7- Vedrai la tua libreria qui

inserisci qui la descrizione dell'immagine

8- scegli la tua libreria e fai clic su ok

inserisci qui la descrizione dell'immagine

9- Quindi, vedrai che la tua libreria è stata aggiunta.

inserisci qui la descrizione dell'immagine


Per i primi due approcci, è necessario un file JAR. Puoi cercare http://search.maven.org/ per trovare file JAR correlati ad Android. Ad esempio, questo è il risultato della ricerca per jdom in questo collegamento

Risultato della ricerca per jdom


Approccio 3) Android utilizza http://jcenter.bintray.com/ come libreria remota. Ad esempio, questo è il risultato della ricerca per jdom nel collegamento.

jcenter jdom

Per aggiungere una libreria con questo approccio, segui questi passaggi:

1- File -> Struttura del progetto -> Dipendenze

inserisci qui la descrizione dell'immagine

2- Fare clic sul pulsante + e scegliere la dipendenza della libreria

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

3- trova la tua libreria e selezionala, quindi fai clic su OK.


Spero possa essere d'aiuto.


13
La migliore risposta in tutti gli stack overflow
mizerablebr

1
Sono contento che trovi utile la mia risposta. Apprezzo molto il tuo feedback.
Mohammad

1
Approche 2 funziona per me. Grazie per le illustrazioni :)
Hichem Acher

1
Sei il benvenuto. Sono contento che questo post ti abbia aiutato.
Mohammad

Grazie mille!!
Vinoth Vino

28

Per fare riferimento a un progetto lib esterno senza copia, basta fare questo: - Inserire queste 2 righe su setting.gradle:

  include ':your-lib-name'
  project(':your-lib-name').projectDir = new File('/path-to-your-lib/your-lib-name)

Inserisci questa riga nella parte delle dipendenze del build.gradlefile:

compile project(':your-lib-name')

Sincronizza progetto


1
Ottima risposta, crea un collegamento alla libreria originale, in modo da non dover reimportare ogni volta che il codice della libreria cambia!
diman

21

Ci sono due modi più semplici se uno non funziona, prova l'altro.

  1. Aggiungi la dipendenza della libreria all'interno della dipendenza all'interno del build.gradlefile della libreria che stai utilizzando e incolla la tua libreria in Librerie esterne.

O

  1. Vai alla tua libscartella all'interno della appcartella e incolla tutti i tuoi .jarfile di libreria, ad esempio, ora il trucco qui è che ora vai nel settings.gradlefile ora aggiungi questa riga include ':app:libs'dopo include ':app'che funzionerà sicuramente.

19

Qualche altro modo per importare questa libreria? Posso semplicemente copiare e incollare il codice sorgente nella mia sorgente o crearne uno JAR?

Completare i passaggi per importare una libreria in Android Studio 1.1

  1. Vai a File -> Importa modulo.
  2. Directory di origine -> Sfoglia il percorso del progetto.
  3. Specifica il nome del modulo
  4. Apri il file build.gradle (Module: app)
  5. Aggiungi la seguente riga con il nome del tuo modulo

    compila progetto (': internal_project_name')

Tratto da: come aggiungere una libreria in Android Studio


8

Una risposta tardiva, anche se ho pensato di dare una risposta approfondita a questa domanda. Questo metodo è adatto per Android Studio 1.0.0 e versioni successive.

PASSI

  1. Per prima cosa cambia la struttura delle cartelle da Android a Project .

inserisci qui la descrizione dell'immagine

  1. Ora cerca la cartella libs all'interno della cartella app - build.

inserisci qui la descrizione dell'immagine

  1. Dopo aver incollato il file .jar nella cartella libs. Fare clic con il tasto destro sul file jar e alla fine fare clic su Aggiungi come libreria . Questo si occuperà di aggiungere i file di compilazione ('libs / library_name.jar') in build.gradle [Non è necessario inserirlo manualmente nel file di build].

inserisci qui la descrizione dell'immagine

Ora puoi iniziare a utilizzare la libreria nel tuo progetto.


nel mio caso mentre utilizzavo il primo approccio, non vedevo l'opzione aggiungi come libreria nell'elenco, ma la seconda opzione ha funzionato per me. Ma la mia domanda è perché l'opzione Aggiungi come libreria non è stata mostrata nel mio caso
Abdul Waheed

Molto utile Grazie! Nota: dopo aver aggiornato Android Studio, il pulsante "Aggiungi come libreria" non è più in fondo all'elenco. Ora è circa 5 ° dal basso.
JFreeman

8

Avevo anche affrontato questo problema. Quella volta ho seguito alcuni passaggi come:

  1. File> New> Import module> select your library_project. Quindi include 'library_project'verrà aggiunto nel settings.gradlefile.

  2. File> Project Structure> App> Dependencies Tab> select library_project. Se library_projectnon viene visualizzato, fare clic sul +pulsante, quindi selezionare il file library_project.

  3. Pulisci e costruisci il tuo progetto. Le seguenti righe verranno aggiunte nel modulo della tua app build.gradle( suggerimento: questo non è quello in cui classpathè definito ).

 dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile project(':library_project')
 }
  1. Se queste righe non sono presenti, è necessario aggiungerle manualmente e pulire e ricostruire nuovamente il progetto ( Ctrl + F9).

  2. Una cartella denominata library_projectverrà creata nella cartella dell'app.

  3. Se viene creato un errore di unione di icone o attività, vai al AndroidManifestfile e aggiungi<application tools:replace="icon,label,theme">


7

Tre modi in Android Studio per aggiungere una libreria esterna.

  1. se vuoi aggiungere la dipendenza del progetto libarary nel tuo progetto:

    A. Nel menu file, fai clic su Nuovo e scegli il modulo di importazione, scegli il percorso del progetto della libreria e fai clic su OK, il progetto della libreria viene aggiunto automaticamente al progetto di Android Studio.

    B. Ora apri il file gradle del modulo principale (come l'app) e aggiungi la dipendenza del progetto nelle dipendenze della sezione delle dipendenze {

    compile project (': library project name')

  2. se vuoi aggiungere il file jar: A. aggiungi il file jar nella cartella libs. B. E aggiungi dipendenza

    compile fileTree (dir: 'libs', include: '* .jar') // aggiungi tutto il file jar dalla cartella libs, se vuoi aggiungere un jar particolare da libs aggiungi sotto la dipendenza.

    compilare i file ('libs / abc.jar')

  3. Aggiungi dipendenza dall'URL (consigliato). piace

    compila 'com.mcxiaoke.volley: library-aar: 1.0.0'


ciao vinod, puoi spiegare come aggiungere la dipendenza con l'URL? Inoltre, può essere un URL git che se subisce una modifica viene importato direttamente nel mio progetto? Sono un po 'nuovo in questo sviluppo, quindi per favore
abbi pazienza

Ciao Nikhil, leggi l'articolo relativo alle dipendenze di Android che menziono developer.android.com/studio/build/dependencies.html
vinod

6

Per il modo più semplice, segui questi passaggi

  1. Vai a File-> New-> Import Module->choose library or project folder

  2. Aggiungi libreria per includere la sezione nel file settings.gradle e sincronizza il progetto (dopodiché puoi vedere la nuova cartella con il nome della libreria aggiunto nella struttura del progetto)

    include ':mylibraryName'

  3. Vai a File -> Struttura del progetto -> app -> scheda dipendenza -> fai clic sul pulsante più

  4. Seleziona la dipendenza del modulo -> seleziona la libreria (il nome della tua libreria dovrebbe apparire lì) e inserisci l'ambito (compilazione o implementazione)

  5. Aggiungi questa riga in build.gradle nel modulo a livello di app nella sezione delle dipendenze

    implementation project(':mylibraryName')


3

Se la libreria di cui hai bisogno è su GitHub, aggiungerla ad Android Studio è facile con JitPack .

Passaggio 1. Aggiungi il repository jitpack a build.gradle:

allprojects { 
  repositories {
    jcenter()
    maven { url "https://jitpack.io" }
  }
}

Passaggio 2. Aggiungi il repository GitHub come dipendenza:

dependencies {
    // ...
    compile 'com.github.Username:LibraryRepo:ReleaseTag'
}

JitPack agisce come un repository esperto e può essere utilizzato in modo molto simile a Maven Central. La cosa bella è che i manutentori non devono caricare la libreria. Dietro le quinte JitPack controllerà il codice da GitHub e lo compilerà. Pertanto, affinché funzioni, deve esserci un file build funzionante nel repository git.

C'è anche una guida su come pubblicare una libreria Android.


Questo non memorizzerà i file delle dipendenze nell'albero del progetto?
user7860670

2

Android Studio non usa Maven, usa Gradle, puoi aprire il tuo build.gradlepercorso dovrebbe essere: /app/build.gradlee aggiungi la dipendenza Gradle che mostra sul repo:

La build.gradleha una dependenciessezione:

dependencies {
    //here add your dependency
}

Il repository dice che è necessario aggiungere questa dipendenza:

compile 'com.foursquare:foursquare-android-oauth:1.0.3'

solo aggiungere che la linea al vostro dependenciessu buil.gradle, salvare il file, e Android ricostruirà il progetto, questo è tutto


1
1.Goto File -> New -> Import Module
   2.Source Directory -> Browse the project path.
   3.Specify the Module Name  it is used for internal project reference.

Apri il file build.gradle (Module: app).

 implementation project(':library')

1

Trasforma qualsiasi progetto GitHub in un'implementazione gradle a riga singola con questo sito web

https://jitpack.io/

Esempio, avevo bisogno di questo progetto: https://github.com/mik3y/usb-serial-for-android

Tutto quello che ho fatto è stato incollare questo nel mio file gradle:

implementation 'com.github.mik3y:usb-serial-for-android:master-SNAPSHOT'

Mi hai salvato! :). Grazie, grazie mille. È così facile con il trucco che hai detto! : Ho lottato per quasi 4 ore, prima di vedere la tua risposta! :)
Victor

0

Ho avuto lo stesso problema. Ciò è accaduto a causa della dipendenza dalla libreria principale. Stavo usando javax. *. Questo è quello che ho fatto per risolvere

In File-> Struttura del progetto-> Dipendenze l'ho aggiunto come file fornito, non come compilazione. Quindi ricostruisci il progetto.

Questo problema è iniziato dopo l'aggiornamento di Android Studio. Ma penso che accada quando provi a modificare i file di build manualmente.


0

Aggiunta di una libreria in Android Studio 2.1

Just Go to project -> then it has some android,package ,test ,project view

Basta cambiarlo in Project View

sotto app->lib folderpuoi copiare e incollare direttamente la libreria e sincronizzarla con Android. Questo è tutto


Copia-incolla la libreria? È un URL di un repository GitHub
Odys

0

1) prendi la tua libreria da qui http://search.maven.org/

2) crea una cartella libs nella directory dell'app

3) incolla la tua libreria lì

4) fai clic con il pulsante destro del mouse sulla tua libreria e fai clic su "Aggiungi come libreria"

5) questo è tutto ciò che devi fare!

Spero che questo ti aiuterà sicuramente !!!!


0

Ci sono alcuni cambiamenti nella new gradle 4.1

invece di compilare dovremmo usare l' implementazione

implementazione "com.android.support:appcompat-v7:26.0.0"


-1
  1. Nella sezione repository del build.gradle del progetto aggiungi quanto segue:
flatDir { dirs 'aars' } 
  1. Nella sezione delle dipendenze di build.gradle aggiungi quanto segue:

compile "[group id]: [artifact id]: [version] @aar"

sostituire [id gruppo] ecc. con i vari attributi lib

  1. crea una sottodirectory nella directory del aarstuo progetto

  2. Copia il [youlibrary].aarnella sottodirectory creata in 3. sopra.

  3. Costruisci e divertiti!


-2

SEMPLICI PASSAGGI PER AGGIUNGERE QUALSIASI LIBRERIA IN ANDROID STUDIO:

  1. Copia il file in questione da qualsiasi cartella del tuo computer (es. C: /documents/xyz.jar "), quindi vai su Android Studio e fai clic con il pulsante destro del mouse sulla cartella Project Library e seleziona Incolla.

  2. Ora, fai clic con il pulsante destro del mouse sul file della libreria appena aggiunto e seleziona l'opzione "aggiungi come libreria"

FATTO

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.