Come faccio ad aggiungere un progetto di libreria ad Android Studio?


796

Come faccio ad aggiungere un progetto di libreria (come Sherlock ABS) ad Android Studio ?

(Non per il vecchio bundle basato su ADT Eclipse, ma per il nuovo Android Studio .)


28
sì, capire questo era molto più confuso di quanto avrebbe dovuto essere ... non come se fosse meglio in eclissi.
Daniel Smith,

4
Il video di YouTube Come aggiungere librerie ad Android Studio spiega il processo.

2
Se stai usando Gradle, vedi questa risposta StackOverflow .
Cranato il

2
Ecco un video che ho trovato davvero utile: youtube.com/watch?v=1MyBO9z7ojk
Simon

Risposte:


718

Aggiornamento per Android Studio 1.0

Da quando è stato rilasciato Android Studio 1.0 (e molte versioni tra la versione 1.0 e una delle prime dal momento della mia precedente risposta) alcune cose sono cambiate.

La mia descrizione è incentrata sull'aggiunta manuale di progetti di librerie esterne tramite file Gradle (per una migliore comprensione del processo). Se vuoi aggiungere una libreria tramite il creatore di Android Studio, controlla la risposta di seguito con la guida visiva (ci sono alcune differenze tra Android Studio 1.0 e quelli degli screenshot, ma il processo è molto simile).

Prima di iniziare l'aggiunta manuale di una libreria al progetto, prendere in considerazione l'aggiunta della dipendenza esterna. Non rovinerà la struttura del tuo progetto. Quasi tutte le famose librerie Android sono disponibili in un repository Maven e la sua installazione richiede solo una riga di codice nel app/build.gradlefile:

dependencies {
     compile 'com.jakewharton:butterknife:6.0.0'
}

Aggiunta della libreria

Ecco il processo completo di aggiunta di una libreria Android esterna al nostro progetto:

  1. Crea un nuovo progetto tramite il creatore di Android Studio. L'ho chiamato HelloWorld .
  2. Ecco la struttura del progetto originale creata da Android Studio:
HelloWorld/
      app/
           - build.gradle  // local Gradle configuration (for app only)
           ...
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...
  1. Nella directory principale ( HelloWorld/), crea una nuova cartella: /libsin cui inseriremo le nostre librerie esterne (questo passaggio non è necessario, solo per mantenere una struttura di progetto più pulita).
  2. Incolla la tua libreria nella /libscartella appena creata . In questo esempio ho usato la libreria PagerSlidingTabStrip (basta scaricare ZIP da GitHub, rinominare la directory della libreria in "PagerSlidingTabStrip" e copiarla). Ecco la nuova struttura del nostro progetto:
HelloWorld/
      app/
           - build.gradle  // Local Gradle configuration (for app only)
           ...
      libs/
           PagerSlidingTabStrip/
                - build.gradle // Local Gradle configuration (for library only)
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...
  1. Modifica settings.gradle aggiungendo la tua libreria a include. Se usi un percorso personalizzato come ho fatto io, devi anche definire la directory del progetto per la nostra libreria. Un intero settings.gradle dovrebbe apparire come di seguito:

    include ':app', ':PagerSlidingTabStrip'
    project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')

5.1 Se si verifica l'errore "Configurazione predefinita", provare questo invece del passaggio 5,

    include ':app'
    include ':libs:PagerSlidingTabStrip'
  1. In app/build.gradleaggiungi il nostro progetto di biblioteca come dipendenza:

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile project(":PagerSlidingTabStrip")
    }

6.1. Se hai seguito il passaggio 5.1, segui questo invece di 6,

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'

        compile project(":libs:PagerSlidingTabStrip")
    }
  1. Se il progetto della libreria non ha build.gradlefile, è necessario crearlo manualmente. Ecco un esempio di quel file:

        apply plugin: 'com.android.library'
    
        dependencies {
            compile 'com.android.support:support-v4:21.0.3'
        }
    
        android {
            compileSdkVersion 21
            buildToolsVersion "21.1.2"
    
            defaultConfig {
                minSdkVersion 14
                targetSdkVersion 21
            }
    
            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    java.srcDirs = ['src']
                    res.srcDirs = ['res']
                }
            }
        }
  2. Inoltre, puoi creare una configurazione globale per il tuo progetto che conterrà le versioni dell'SDK e la versione degli strumenti di costruzione per ogni modulo per mantenere la coerenza. Modifica il gradle.propertiesfile e aggiungi le righe:

    ANDROID_BUILD_MIN_SDK_VERSION=14
    ANDROID_BUILD_TARGET_SDK_VERSION=21
    ANDROID_BUILD_TOOLS_VERSION=21.1.3
    ANDROID_BUILD_SDK_VERSION=21

    Ora puoi usarlo nei tuoi build.gradlefile (nei moduli app e librerie) come di seguito:

    //...
    android {
        compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
        buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
    
        defaultConfig {
            minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
            targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
        }
    }
    //...
  3. È tutto. Basta fare clic su "Sincronizza il progetto con l'icona Gradle" sincronizzare con Gradle. La tua libreria dovrebbe essere disponibile nel tuo progetto.

Google I / O 2013 - Il nuovo Android SDK Build System è un'ottima presentazione sulla creazione di app Android con Gradle Build System: come diceva Xavier Ducrohet:

Android Studio si occupa di editing, debugging e profiling. Non si tratta più di costruire.

All'inizio può essere un po 'confuso (specialmente per coloro che lavorano con Eclipse e non hanno mai visto la formica - come me;)), ma alla fine Gradle ci offre alcune grandi opportunità e vale la pena imparare questo sistema di build.


6
ehi, hai spiegato perfettamente il vero problema. votando la tua risposta in modo che altre persone possano vederla. una cosa minore che non ha funzionato dalla mia parte è fare riferimento alla libreria di supporto in build.gradle della dipendenza. come risulta ': Project / libs ...' non ha funzionato per qualche motivo. ho dovuto eliminare l'identificazione del progetto. così 'libs / ...'. e ha compilato bene. una nota è che questi due modi di fare riferimento a percorsi o progetti sono confusi. spero che in futuro emergerà uno schema semplice e unificato. non c'è motivo per cui la soluzione originale non funzioni.
vincitore n.

9
+1. Stavo lottando da molto tempo. Come ha detto Victor N , fare riferimento al vaso di supporto del progetto principale dal modulo actionbarsherlock non funziona. Ho dovuto fare quanto segue per farlo funzionare ... (1) Rimuovere i file di compilazione ('libs / android-support-v4.jar') dal build.gradle del progetto. Il modulo principale dovrebbe avere solo un progetto di compilazione (": libraries: actionbarsherlock") . (2) Aggiungi i file di compilazione ('libs / android-support-v4.jar') anziché i file di compilazione (': HelloWorld / libs / android-support-v4.jar') in build.gradle di actionbarsherlock.
Akbar ibrahim,

3
Dov'è Global libraries(# 10: "ora vai alle biblioteche globali")? A parte questo, funziona come descritto :) Grazie mille. (Spero che Google ci riesca - un compito così semplice è al momento estremamente complesso)
Konrad Morawski,

8
Perché non ho la sezione "Modulo di importazione", all'opzione in cui ci dirigi? Sto usando Android Studio 0.3.1
alicanbatur

5
Manca l'opzione Modulo di importazione !!
amalBit

274

Ecco la guida visiva:

Aggiornamento per Android Studio 0.8.2:

In Android Studio 0.8.2, vai a Struttura del progetto -> in Moduli basta premere il pulsante più e selezionare Importa progetto esistente e importa actionbarsherlock. Quindi sincronizza i tuoi file Gradle.

Se affronti l'errore

Errore: la revisione di SDK Build Tools (xx.xx) è troppo bassa. Il minimo richiesto è yy.yy

basta aprire il build.gradlefile nella actionbarsherlockdirectory e aggiornare buildToolsVersionquello suggerito.

android {
  compileSdkVersion 19
  buildToolsVersion 'yy.y.y'

Android Studio 0.8.2


File menu -> Struttura del progetto ... :

Primo

Modulo -> Modulo di importazione

Secondo

Dopo aver importato il modulo della libreria, selezionare il modulo del progetto e aggiungere la dipendenza:

Terzo

E quindi selezionare il modulo importato :

Via


31
Opzione del modulo di importazione non disponibile in Android Studio4.3
amalBit

3
La chiave per me per far funzionare questo e risolvere gli errori del pacchetto non trovato è stato il passoSelect your project module and add dependency dependencies { // ... compile project(':library') }
toobsco42

7
Questo copierà il modulo della libreria nel tuo progetto, che non è quello che vuoi se vuoi una base di codice comune condivisa tra diversi progetti
Rémy DAVID,

@amalBit sei ... vieni dal futuro? Ma seriamente, devono renderlo semplice come in Eclipse ADT; chi vuole colpire un repository di terze parti e compilare (potenzialmente) codice arbitrario in ogni build? Ciò mina seriamente il QA e i protocolli di congelamento del codice
CCJ,

Era molto indietro durante i giorni beta di Android Studio 0.4.3. Per quanto riguarda il repository di terze parti sull'adesione, id id, evitare di usare +. Basta specificare la versione desiderata. Se non ti fidi ancora abbastanza, puoi creare un barattolo (o clonare) qualsiasi repository e usarlo.
amalBit

111

Utilizzare il menu File -> Struttura del progetto -> Moduli .

Ho iniziato a usarlo oggi. È un po 'diverso

Per Sherlock, potresti voler eliminare la loro directory di test o aggiungere il junit.jarfile al percorso di classe.

Per importare la libreria usando Gradle, puoi aggiungerla alla dependenciessezione del tuo build.gradle(quella del modulo).

Per esempio

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.0'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}

Android Studio sta cambiando.

Esiste una sezione chiamata "Apri le impostazioni del modulo" se fai clic con il pulsante destro del mouse su una cartella del modulo nella sezione del progetto di Android Studio (sto usando la versione 0.2.10).


1
Hmm dice ancora android-apt-compilatore: styles.xml: 5: errore: errore nel recupero del genitore per l'oggetto: nessuna risorsa trovata che corrisponde al nome dato 'Theme.Sherlock.Light.DarkActionBar'.
Alexander Kulyakhtin,

Sotto il modulo Sherlock -> Dependecies ho Android 4.2.2 e il supporto Library v4
Blackbelt

@ ρяσѕρєяK accanto al pulsante Esegui, c'è un'etichetta con Android. Se fai clic lì, troverai Modifica configurazione. Spingere e in Dispositivo di destinazione fare clic su "Mostra selettore chiamate"
Blackbelt,

7
Salve, ho lo stesso problema di Alex ("Gradle: errore durante il recupero del genitore per l'elemento: non è stata trovata alcuna risorsa che corrisponda al nome" Theme.Sherlock.Light ".) - la dipendenza Java sembra essere risolta correttamente, perché IDE non incolpa la mia SherlockActivity, ma per qualche ragione Gradle non sembra guardare alle risorse di ABS. Qualche idea?
pesce

4
Su Android Studio 0.2.8 non è presente alcuna Modulessezione nella Project Structurefinestra.
Konrad Morawski,

52

Vorrei prendere in considerazione le dipendenze, le librerie Android e la configurazione multiprogetto necessaria. Ti preghiamo di dedicare qualche minuto per farlo.

In particolare, nel caso di un progetto di libreria non jar, leggere il seguente frammento dall'origine precedente:

I progetti di valutazione possono anche dipendere da altri progetti di valutazione utilizzando un'impostazione multi-progetto. Una configurazione multi-progetto funziona normalmente avendo tutti i progetti come sottocartelle di un dato progetto radice.

Ad esempio, dato alla seguente struttura:

MyProject/
 + app/
 + libraries/
    + lib1/
    + lib2/

Siamo in grado di identificare 3 progetti. Gradle li farà riferimento con il seguente nome:

:app
:libraries:lib1
:libraries:lib2

Ogni progetto avrà il proprio build.gradle che dichiara come viene costruito. Inoltre, ci sarà un file chiamato settings.gradle nella radice che dichiara i progetti. Questo dà la seguente struttura:

MyProject/
 | settings.gradle
 + app/
    | build.gradle
 + libraries/
    + lib1/
       | build.gradle
    + lib2/
       | build.gradle

Il contenuto di settings.gradle è molto semplice:

include ':app', ':libraries:lib1', ':libraries:lib2'

Questo definisce quale cartella è in realtà un progetto Gradle.

È probabile che il progetto: app dipenda dalle librerie e questo viene fatto dichiarando le seguenti dipendenze:

dependencies {
    compile project(':libraries:lib1')
}

Si prega di notare che la GUI di Android Studio è stata scaricata o inesistente per far sì che ciò accada.

Attualmente sto usando sottomoduli git per collegare la libreria nidificata al repository git libreria reale per evitare un pasticcio di dipendenza.


Molto utile e, soprattutto, non gioca ai capricci della gui del giorno.
RichieHH,

1
grazie mille per aver incluso l'unica risposta che abbia senso. ogni altra risposta è obsoleta e semplicemente non funziona. non ho nemmeno provato in CS alla Virginia Tech perché i primi due anni hanno imparato a fare clic in eclissi. non aveva alcun senso, ma vedere il risultato graduale dei clic casuali in un IDE lo fa.
dcunited001,

Grazie per la punta dei sottomoduli git. Prima utilizzavo junction, ma ora sono passato agli esterni SVN. Funziona come un fascino.
velis,

25

Ho appena trovato un modo più semplice (piuttosto che scrivere direttamente nei file .gradle).

Questo è per Android Studio 1.1.0.

  1. File menu -> Nuovo modulo ... :

    Importa progetto esistente

    Fai clic su "Importa progetto esistente".

  2. Seleziona la libreria desiderata e il modulo desiderato.

  3. Fai clic su Fine. Android Studio importerà la libreria nel tuo progetto. Sincronizzerà i file di livello.

  4. Aggiungi il modulo importato alle dipendenze del tuo progetto.

    Fare clic con il tasto destro sulla cartella dell'app -> Apri le impostazioni del modulo -> vai alla scheda Dipendenze -> Fare clic sul pulsante '+' -> fare clic su Dipendenza del modulo.

    Il modulo della libreria verrà quindi aggiunto alle dipendenze del progetto.

    Aggiungi modulo libreria

  5. ???

  6. Profitto


17

Il modo più semplice che ho trovato per includere un progetto di libreria esterna è (ad esempio per includere una libreria di Facebook che è memorizzata in una directory nella cartella delle dipendenze):

  1. In settings.gradle aggiungi

    include ':facebook'
    
    project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
  2. Nella sezione dipendenze build.gradle, aggiungi

    compile project ('facebook')

Non resta che sincronizzare il progetto con file gradle.


Ciao Vilen, cosa sono le impostazioni
Vai

Ciao Rajnish. Dalla documentazione: settingsDir Restituisce la directory delle impostazioni della build. La directory delle impostazioni è la directory che contiene il file delle impostazioni. Restituisce: la directory delle impostazioni. Non restituisce mai null.
Vilen,

I due punti prima / dipendenze sono più importanti per essere curati La tua risposta mi
aiuta

NOTA: per la valutazione delle stringhe in gradi è necessario usare la doppia virgoletta ("). Questo" salva il giorno "per me. Collegato a questo
Solata

15

Un modo semplice per aggiungere un file JAR come libreria al tuo progetto Android Studio:

a) Copia i tuoi file * .jar

b) Incolla nella directory libs sotto i tuoi progetti:

Inserisci qui la descrizione dell'immagine

c) Aggiungi a build.gradle:

dependencies {
    ...
    compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}

b) Se il tuo progetto dall'esempio com.example.MYProject e le librerie com.example.ScanAPI hanno lo stesso spazio dei nomi com.example , Android Studio controllerà la tua build e creerà tutte le modifiche necessarie nel tuo progetto. Successivamente è possibile rivedere queste impostazioni nel menu File -> Struttura del progetto .

c) Se il progetto e le librerie hanno uno spazio dei nomi diverso, è necessario fare clic con il pulsante destro del mouse sulla libreria e selezionare l'opzione "Aggiungi come libreria" e selezionare il tipo desiderato.

Ricorda che l'opzione "Struttura del progetto" non sta effettuando alcuna modifica automatica in "build.gradle" nella versione corrente di Android Studio (0.2.3). Forse questa funzione sarà disponibile nelle prossime versioni.


12

Opzione 1: trascina i file nella directory libs / di Project

Il file build.gradle pertinente verrà quindi aggiornato automaticamente.

Opzione 2: modifica manuale del file build.gradle

Apri il tuo file build.gradle e aggiungi una nuova regola di build alla chiusura delle dipendenze. Ad esempio, se desideri aggiungere Google Play Services, la sezione delle dipendenze del tuo progetto sarebbe simile a questa:

dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile 'com.google.android.gms:play-services:6.5.+'
   }

Opzione 3: utilizzare l'interfaccia utente di Android Studio

Nel pannello Progetto, Control+ fare clic sul modulo a cui si desidera aggiungere la dipendenza e selezionare Apri impostazioni modulo.

Inserisci qui la descrizione dell'immagine

Seleziona la scheda Dipendenze, seguita dal pulsante + nell'angolo in basso a sinistra. Puoi scegliere dal seguente elenco di opzioni:

  • Dipendenza della biblioteca
  • Dipendenza del file
  • Dipendenza del modulo

È quindi possibile inserire ulteriori informazioni sulla dipendenza che si desidera aggiungere al progetto. Ad esempio, se si sceglie Dipendenza della libreria, Android Studio visualizza un elenco di librerie tra cui scegliere.

Dopo aver aggiunto la tua dipendenza, controlla il tuo file build.gradle a livello di modulo. Dovrebbe essere aggiornato automaticamente per includere la nuova dipendenza.

fonte


10

Ecco come funziona per me in Android Studio 1.5+

Nel progetto in cui si desidera aggiungere un progetto di libreria esterna, selezionare il menu File -> Nuovo -> * Importa nuovo modulo **, accedere al progetto di libreria che si desidera aggiungere al progetto, selezionare per aggiungere il modulo "libreria" in il tuo progetto. Otterrai settings.gradle nei tuoi progetti, accanto all'app, alla libreria inclusa, qualcosa del genere:

include ':app', ':library'

Aggiungi in build.gradle (Modulo: app) nella sezione delle dipendenze:

Progetto di compilazione (': libreria')

Ricostruisci il progetto e il gioco è fatto.

* Puoi aggiungere tutte le librerie (moduli) che desideri. In tal caso in settings.gradle avrai:

 include ':app', ':lib1', ':lib2', ...

E in build.gradle dovrai avere:

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

    // Some other dependencies...

    compile project(':lib1')
    compile project(':lib2')
    ...
}

9

Se hai bisogno di accedere alle risorse di un progetto di biblioteca (come fai con ABS) assicurati di aggiungere il progetto / modulo della biblioteca come "Dipendenza del modulo" invece che "Biblioteca".


9

Puoi farlo facilmente. Vai al menu File -> Nuovo -> Importa modulo ... :

Inserisci qui la descrizione dell'immagine

Cerca la directory che contiene il modulo. Fai clic su Fine:

Inserisci qui la descrizione dell'immagine

Vai a Struttura del progetto e aggiungi Dipendenza del modulo :

Inserisci qui la descrizione dell'immagine

Nota: se si riceve un errore SDK, aggiornarlo.


1
Secondo me il modo più semplice e veloce, ha funzionato ancora oggi!
sig.

8
  1. Premere F4per visualizzare la struttura del progetto , fare clic su librerie o librerie globali e fare clic +per aggiungere il file JAR.
  2. Fare clic su Moduli ciò che si desidera aggiungere jar, selezionare la scheda Dipendenze , fare clic su +e aggiungere Libreria.

6

La modifica delle dipendenze della libreria tramite la GUI non è consigliabile in quanto non scrive tali modifiche nel file build.gradle. Quindi il tuo progetto non verrà creato dalla riga di comando. Dovremmo modificare il file build.gradle direttamente come segue.

Ad esempio, dato alla seguente struttura:

Il mio progetto/

  • app /
  • librerie /
    • lib1 /
    • lib2 /

Siamo in grado di identificare tre progetti. Gradle li farà riferimento con i seguenti nomi:

  1. : app
  2. : Biblioteche: lib1
  3. : Biblioteche: lib2

È probabile che il progetto: app dipenda dalle librerie e questo viene fatto dichiarando le seguenti dipendenze:

dependencies {
    compile project(':libraries:lib1')
}

Veramente? Strano, hanno l'intera GUI e tuttavia non è consigliabile. Come mai?
Alexander Kulyakhtin,

Poiché la modifica tramite GUI non scrive tali modifiche nel file build.gradle. La modifica della GUI salva solo le modifiche nei dati di progetto di IntelliJ. Questo è un bug al momento che verrà risolto nelle versioni future. Puoi fare riferimento a questa risposta dal team leader di Google Android-Studio stackoverflow.com/questions/16678447/…
Shakti Malik,

5

Per aggiungere alla risposta: se l'IDE non mostra alcun errore, ma quando si tenta di compilare, si ottiene qualcosa del tipo:

No resource found that matches the given name 'Theme.Sherlock.Light'

Il progetto della libreria è probabilmente compilato come progetto applicativo. Per cambiare questo, vai a:

File menu -> Struttura del progetto -> Sfaccettature -> [Nome libreria] -> Seleziona "Modulo libreria".


5

Primo modo Funziona per MacBook.

Prima seleziona il tuo file builder.gradle come indicato nella schermata:

Inserisci qui la descrizione dell'immagine

Aggiungi dipendenze come come nella schermata selezionata:

Inserisci qui la descrizione dell'immagine

Seleziona sincronizza progetto.

Se ricevi un errore come "Progetto con percorso ': sign-pad' non è stato trovato nel progetto ': app'", utilizza la seconda modalità:

Selezionare il menu File -> Nuovo -> Importa modulo ... :

Inserisci qui la descrizione dell'immagine

Dopo aver fatto clic su Importa modulo ,

Inserisci qui la descrizione dell'immagine

dare il percorso della libreria come il mio percorso MacBook:

Inserisci qui la descrizione dell'immagine

Clicca su Fine . Ora la tua libreria è stata aggiunta.


4

Dopo aver importato il modulo ABS (da File> Struttura del progetto) e assicurato che avesse Android 2.2 e Support Library v4 come dipendenze, continuavo a ricevere il seguente errore mentre tu @Alex

Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'

Ho aggiunto il modulo appena importato come dipendenza al mio modulo dell'app principale e questo ha risolto il problema.


Ho provato tutti i passaggi includendo l'aggiunta del modulo come dipendenza, ma ho ancora Gradle: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'.. Sembra che il mio progetto principale non veda le risorse del progetto della biblioteca (ABS). L'IDE tuttavia riconosce i riferimenti a classi e risorse. Schermata
christiaanderidder,

Sto migrando su IDEA 13 da 12 e ho anche questo errore. Aiuterò solo la reimportazione per tutte le mie dipendenze. Rimuovi manualmente tutti i moduli, rimuovi i file * .iml correlati e reimporta le tue librerie
Dmitriy Tarasov il

4

Android Studio 3.0

Aggiungi semplicemente il nome della libreria al blocco delle dipendenze del file build.gradle della tua app .

dependencies {
    // ...
    implementation 'com.example:some-library:1.0.0'
}

Nota che dovresti usare implementationpiuttosto che compileora. Questa è una novità di Android Studio 3.0. Vedi queste domande e risposte per una spiegazione della differenza.


In realtà è una modifica in Gradle 4, non in Android Studio 3. Puoi continuare a utilizzare com.android.tools.build:gradle:2.3.3invece di 3.0.0 in Android Studio 3 se vuoi continuare a usare "compila".
Chauduyphanvu,

3

Per risolvere questo problema, devi solo aggiungere il percorso della risorsa abs al tuo file di build del progetto, proprio come sotto:

sourceSets {
    main {
        res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res']
    }
}

Quindi, compilo di nuovo senza errori.


3

Se si dispone di Android Studio .0.4.0, è possibile creare una nuova cartella nel percorso di generazione, YourApp/libraries. Copia il file JAR. Lì dentro, fai clic destro su di esso e "Aggiungi come libreria". Ora hai un popup. Basta selezionare la directory e premere OK, e il gioco è fatto.


3

Importa semplicemente il progetto della libreria Android come modulo e in Build.gradle .

Applica plug-in: 'com.android.library'

Successivamente, segui questi passaggi:

  1. Fare clic con il tasto destro su Modulo e selezionare Apri Impostazioni modulo
  2. Selezionare le dipendenze, fare clic su +, selezionare le dipendenze della libreria e aggiungere il modulo precedentemente importato.


2

Ho trovato la soluzione È così semplice Segui le istruzioni di froger_mcs .

Assicurarsi di rendere la cartella src una cartella di origine in Struttura del progetto -> Moduli (Sorgenti).

Inserisci qui la descrizione dell'immagine


2

Fondamentalmente, puoi includere i tuoi file JAR in tre modi diversi. L'ultima è la libreria remota che utilizza il repository online https://bintray.com/ jcenter. Ma, se lo fai in uno degli altri due modi, il file JAR verrà incluso fisicamente nel tuo progetto. Si prega di leggere questo link https://stackoverflow.com/a/35369267/5475941 per ulteriori informazioni. In questo post ho spiegato come importare il tuo file JAR in Android Studio e ho spiegato tutti i modi possibili.

In breve, se è così (indirizzo locale), vengono scaricati e questi file JAR si trovano fisicamente nel progetto:

inserisci qui la descrizione dell'immagine

Ma, se si tratta di un indirizzo Internet come questo, sono librerie remote (parte jintenter bintray.com) e verranno utilizzate in remoto:

inserisci qui la descrizione dell'immagine

Spero possa essere d'aiuto.


2

Apri il file dell'app del modulo Gradle build e aggiungi la tua dipendenza. Se scarichi la libreria, importa e costruisci come gradle.

Altrimenti aggiungi i repository nell'app del modulo gradle laterale:

repositories {
        maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}

I primi repository scaricheranno la libreria per te.

E compila la libreria scaricata:

 compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
        transitive = true
    }

Se stai creando una libreria, devi solo importare il progetto come importare un nuovo modulo.


2

Ho avuto una causa diversa del problema, quindi per le persone:

repositories {
    mavenCentral()
}

cambia mavenCentral () in jcenter () e aggiungi

allprojects {
    repositories {
        jcenter()
    }
}

1

In Android Studio, vai nella cartella dell'app interna e apri il file build.gradle. Qui vedrai le dipendenze {}. Al suo interno è possibile aggiungere il progetto della libreria e sincronizzare. Ora, dopo aver sincronizzato la libreria, verrà aggiunta al tuo progetto e puoi usarne le funzioni e le classi nel tuo progetto.


1

Per Android Studio:

Inserisci qui la descrizione dell'immagine

Fai clic su Build.gradle (modulo: app) .

E aggiungi per

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/commons-io-2.4.jar')
}

e nella tua directory "app", crea una directory "libs". Aggiungi il file yourfile.jar:

Inserisci qui la descrizione dell'immagine

Infine, compila i file Gradle:

Inserisci qui la descrizione dell'immagine


0

Ho anche riscontrato lo stesso problema, quindi ho seguito le cose.

  1. Importa il progetto della libreria nel mio IDE di AndroidStudio come modulo usando il menu File -> Importa menu del modulo

  2. Poi sono andato al mio modulo principale in cui voglio il progetto della biblioteca come progetto dipendente

  3. Fai clic destro sul modulo principale (nel mio caso il suo nome è app ) -> apri impostazione modulo -> vai nella scheda dipendenze -> fai clic sul pulsante + (lo otterrai sul lato destro della finestra) -> fai clic sulla dipendenza del modulo - > seleziona il tuo progetto di biblioteca dalla lista

Applica le modifiche e fai clic sul OKpulsante.

Ha funzionato per me. Spero che possa aiutare anche gli altri.


0

Aggiungi questo nel tuo file gradle di build:

 dependencies {
     implementation 'com.jakewharton:butterknife:9.0.0'
}

-1

Infatti, poiché le versioni stanno cambiando, cambia anche l'interfaccia utente e le opzioni disponibili nel menu. Dopo aver letto la maggior parte delle risposte a queste domande, ho dovuto indovinare cosa avrebbe funzionato per Android Studio 1.1.0 .

  1. Con il mouse, seleziona il progetto a livello principale (è qui che mostra il nome della tua app).

  2. Fare clic con il tasto destro del mouse e selezionare le opzioni di menu Nuovo, Cartella, Cartella risorse .

  3. Dopo aver creato la cartella delle risorse, incollala o copia in essa, qualunque file JAR sia necessario per la tua libreria.

  4. Dal menu principale di Android Studio (parte superiore dello schermo) selezionare File -> Struttura del progetto .

  5. Quindi seleziona il nome del tuo progetto e vai alla scheda Dipendenze .

  6. Fare clic sul segno più ( +) nella parte inferiore sinistra della finestra di dialogo e selezionare la dipendenza del file.

  7. Infine, apri la cartella delle risorse creata di recente, seleziona i file JAR che hai copiato, quindi fai clic su Applica e OK.

Pulisci e ricostruisci il tuo progetto.


1
fare copie di vasetti nelle risorse non è una buona idea aumenterà inutilmente le dimensioni
dell'apk

Grazie per la consulenza @RajnishMishra. Lo sospettavo, ma cosa proponi invece?
lunedì 3
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.