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 .)
Gradle
, vedi questa risposta StackOverflow .
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 .)
Gradle
, vedi questa risposta StackOverflow .
Risposte:
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.gradle
file:
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:
HelloWorld/ app/ - build.gradle // local Gradle configuration (for app only) ... - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
HelloWorld/
), crea una nuova cartella: /libs
in cui inseriremo le nostre librerie esterne (questo passaggio non è necessario, solo per mantenere una struttura di progetto più pulita)./libs
cartella 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 ...
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'
In app/build.gradle
aggiungi 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")
}
Se il progetto della libreria non ha build.gradle
file, è 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']
}
}
}
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.properties
file 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.gradle
file (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)
}
}
//...
È tutto. Basta fare clic su "Sincronizza il progetto con l'icona 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.
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)
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.gradle
file nella actionbarsherlock
directory e aggiornare buildToolsVersion
quello suggerito.
android {
compileSdkVersion 19
buildToolsVersion 'yy.y.y'
File menu -> Struttura del progetto ... :
Modulo -> Modulo di importazione
Dopo aver importato il modulo della libreria, selezionare il modulo del progetto e aggiungere la dipendenza:
E quindi selezionare il modulo importato :
Select your project module and add dependency
dependencies { // ... compile project(':library') }
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.jar
file al percorso di classe.
Per importare la libreria usando Gradle, puoi aggiungerla alla dependencies
sezione 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).
Modules
sezione nella Project Structure
finestra.
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.
Ho appena trovato un modo più semplice (piuttosto che scrivere direttamente nei file .gradle).
Questo è per Android Studio 1.1.0.
File menu -> Nuovo modulo ... :
Fai clic su "Importa progetto esistente".
Seleziona la libreria desiderata e il modulo desiderato.
Fai clic su Fine. Android Studio importerà la libreria nel tuo progetto. Sincronizzerà i file di livello.
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.
???
Profitto
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):
In settings.gradle aggiungi
include ':facebook'
project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
Nella sezione dipendenze build.gradle, aggiungi
compile project ('facebook')
Non resta che sincronizzare il progetto con file gradle.
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:
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.
Il file build.gradle pertinente verrà quindi aggiornato automaticamente.
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.+'
}
Nel pannello Progetto, Control+ fare clic sul modulo a cui si desidera aggiungere la dipendenza e selezionare Apri impostazioni modulo.
Seleziona la scheda Dipendenze, seguita dal pulsante + nell'angolo in basso a sinistra. Puoi scegliere dal seguente elenco di opzioni:
È 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.
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')
...
}
Puoi farlo facilmente. Vai al menu File -> Nuovo -> Importa modulo ... :
Cerca la directory che contiene il modulo. Fai clic su Fine:
Vai a Struttura del progetto e aggiungi Dipendenza del modulo :
Nota: se si riceve un errore SDK, aggiornarlo.
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/
Siamo in grado di identificare tre progetti. Gradle li farà riferimento con i seguenti nomi:
È probabile che il progetto: app dipenda dalle librerie e questo viene fatto dichiarando le seguenti dipendenze:
dependencies {
compile project(':libraries:lib1')
}
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".
Primo modo Funziona per MacBook.
Prima seleziona il tuo file builder.gradle come indicato nella schermata:
Aggiungi dipendenze come come nella schermata selezionata:
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 ... :
Dopo aver fatto clic su Importa modulo ,
dare il percorso della libreria come il mio percorso MacBook:
Clicca su Fine . Ora la tua libreria è stata aggiunta.
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.
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
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 implementation
piuttosto che compile
ora. Questa è una novità di Android Studio 3.0. Vedi queste domande e risposte per una spiegazione della differenza.
com.android.tools.build:gradle:2.3.3
invece di 3.0.0 in Android Studio 3 se vuoi continuare a usare "compila".
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.
Importa semplicemente il progetto della libreria Android come modulo e in Build.gradle .
Applica plug-in: 'com.android.library'
Successivamente, segui questi passaggi:
https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0 è il link Dropbox su come aggiungere un file JAR e un progetto di libreria nell'ultima versione di Android Studio 1.0.1.
Si prega di consultare la documentazione con schermate. È molto facile per un nuovo utente.
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).
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:
Ma, se si tratta di un indirizzo Internet come questo, sono librerie remote (parte jintenter bintray.com) e verranno utilizzate in remoto:
Spero possa essere d'aiuto.
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.
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.
Per Android Studio:
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:
Infine, compila i file Gradle:
Ho anche riscontrato lo stesso problema, quindi ho seguito le cose.
Importa il progetto della libreria nel mio IDE di AndroidStudio come modulo usando il menu File -> Importa menu del modulo
Poi sono andato al mio modulo principale in cui voglio il progetto della biblioteca come progetto dipendente
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.
Aggiungi questo nel tuo file gradle di build:
dependencies {
implementation 'com.jakewharton:butterknife:9.0.0'
}
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 .
Con il mouse, seleziona il progetto a livello principale (è qui che mostra il nome della tua app).
Fare clic con il tasto destro del mouse e selezionare le opzioni di menu Nuovo, Cartella, Cartella risorse .
Dopo aver creato la cartella delle risorse, incollala o copia in essa, qualunque file JAR sia necessario per la tua libreria.
Dal menu principale di Android Studio (parte superiore dello schermo) selezionare File -> Struttura del progetto .
Quindi seleziona il nome del tuo progetto e vai alla scheda Dipendenze .
Fare clic sul segno più ( +) nella parte inferiore sinistra della finestra di dialogo e selezionare la dipendenza del file.
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.