Il modo raccomandato da Google Gradle Plugin per la configurazione dei file Gradle per la creazione di più progetti presenta alcune carenze Se si dispone di più progetti in base a un progetto di libreria, questo post spiega brevemente la configurazione consigliata di Google, le sue carenze e consiglia un modo diverso di configurare i file Gradle per supporta configurazioni multi-progetto in Android Studio:
Una configurazione multiproject alternativa per Android Studio
Un modo diverso:
Si scopre che esiste un modo migliore per gestire più progetti in Android Studio. Il trucco è creare progetti Android Studio separati per le tue librerie e dire a gradle che il modulo per la libreria da cui dipende la tua app si trova nella directory di progetto della libreria. Se si desidera utilizzare questo metodo con la struttura del progetto che ho descritto sopra, si dovrebbe fare quanto segue:
- Crea un progetto Android Studio per la libreria StickyListHeaders
- Crea un progetto Android Studio per App2
- Crea un progetto Android Studio per App1
- Configura App1 e App2 per creare i moduli nel progetto StickyListHeaders.
Il quarto passo è la parte difficile, quindi è l'unico passo che descriverò in dettaglio. È possibile fare riferimento a moduli esterni alla directory del progetto aggiungendo un'istruzione di progetto nel file settings.gradle e impostando la proprietà projectDir sull'oggetto ProjectDescriptor restituito dall'istruzione di progetto:
Il codice uno deve inserire settings.gradle
:
include ':library1'
project(':library1').projectDir = new File('../StickyListHeader/library1')
Se lo hai fatto correttamente, noterai che i moduli a cui fa riferimento il tuo progetto appariranno nel navigatore del progetto, anche se quei moduli sono esterni alla directory del progetto:
Ciò ti consente di lavorare contemporaneamente sul codice della libreria e sul codice dell'app. Anche l'integrazione del controllo versione funziona bene quando si fa riferimento ai moduli esternamente in questo modo. È possibile eseguire il commit e il push delle modifiche al codice della libreria proprio come è possibile eseguire il commit e il push delle modifiche al codice dell'app.
Questo modo di creare più progetti evita le difficoltà che affliggono la configurazione consigliata da Google. Poiché stiamo facendo riferimento a un modulo esterno alla directory del progetto, non è necessario creare copie extra del modulo della libreria per ogni app che dipende da esso e possiamo eseguire la versione delle nostre librerie senza alcun tipo di assurdità del sottomodulo git.
Sfortunatamente, questo altro modo di creare più progetti è molto difficile da trovare. Ovviamente, non è qualcosa che capirai guardando la guida di Google e, a questo punto, non c'è modo di configurare i tuoi progetti in questo modo utilizzando l'interfaccia utente di Android Studio.