2014-07-09 16 views
38

Sto creando progetti con dipendenze in Android Studio. So come collegare progetti aggiungendo moduli.Android Studio - Creazione di moduli senza copiare i file?

Ma ho capito che "importare moduli" crea una copia di libProject all'interno del progetto.

C'è un modo per impedirlo? Come un "modulo esterno"?

Poiché sono responsabile di entrambi i progetti, desidero poter apportare modifiche a libProject Repo, senza dover copiare i file di paste tra le cartelle.

Grazie

risposta

84

Sì, lo puoi fare. Il modulo deve avere un file di build Gradle impostato per questo. Se è ottenuto che, quindi nel progetto si sta collegando ad esso, aggiungere questo al file di settings.gradle alla radice del progetto:

include ':libraryName' 
project(':libraryName').projectDir=new File('/path/to/library') 

dove il percorso specificato nella seconda riga è il percorso alla directory contenente il file build.gradle della libreria. Il percorso può essere relativo o assoluto.

+0

Grazie funziona perfettamente! C'è un motivo per cui settings.gradle è di sola lettura? Ho usato Sublime per modificare il file. –

+0

Non so perché sarebbe di sola lettura. Deve essere qualcosa di specifico sul tuo progetto o sul controllo del codice sorgente. –

+0

Sto riscontrando un problema con questo http://stackoverflow.com/questions/24898060/gradle-dependencies-in-folder-above-project – CQM

1

È inoltre possibile utilizzare Android {{sourceSets main.java.srcDirs + = '../../../library/src'}} nella vostra applicazione build.gradle. Non sono sicuro di supportare tutte le risorse Android, per la pura libreria java funziona bene.

11

La soluzione:

include ':libraryName' 
project(':libraryName').projectDir=new File('/path/to/library') 

non funzionava per me. Dopo un paio di ore sprecate ho capito il problema. Esistono due file build.gradle, uno per il progetto e uno per il nome della libreria. Se la libreria si trova nella cartella '\ MyLib' poi ci sarà un build.gradle in '\ MyLib' e un altro a '\ MyLib \ app'. Devi indicare il numero "\ MyLib \ app" e non "\ Mylib".

Speriamo di risparmiare tempo per gli altri.

+0

Questo l'ha risolto, grazie! – Chin

+0

Grazie mille per aver postato questo! Ho perso ore su questo. –

0

Se avete, come me, avere più moduli (Ho solo capito oggi che le copie sono state incluse, ho pensato che il progetto comprendeva link alla fonte.)

È possibile avere più moduli/progetti insieme le linee di: -

include ':app', ':sqlwords', ':dbindex', ':dbcolumn', ':dbtable', ':dbdatabase', ':displayhelp', ':pickdate' 
project(':sqlwords').projectDir= new File('d:/Android_Applications/Modules/sqlwords') 
project(':dbcolumn').projectDir= new File('d:/Android_Applications/Modules/dbcolumn') 
project(':dbtable').projectDir= new File('d:/Android_Applications/Modules/dbtable') 
project(':dbindex').projectDir= new File('d:/Android_Applications/Modules/dbindex') 
project(':dbdatabase').projectDir= new File('d:/Android_Applications/Modules/dbdatabase') 
project(':displayhelp').projectDir= new File('d:/Android_Applications/Modules/displayhelp') 
project(':pickdate').projectDir= new File('d:/Android_Applications/PickDateShowCase/pickdate') 
Problemi correlati