Sto costruendo un'applicazione che utilizza una libreria Android come fonte primaria di codice. Quindi ho più app che usano quella libreria; queste app avranno lo stesso codice, ma diversi campi di configurazione, come gli endpoint e così via.Sovrascrivi libreria buildConfigFields nell'applicazione
Per fare questo, ho pensato che avrei potuto avere un buildConfigField
nel fascicolo di mia biblioteca build.gradle
, e poi ignorare che il valore in della mia app build.gradle
utilizzando lo stesso nome, in questo modo:
build.gradle in libreria:
buildConfigField "String", "API_BASE_URL", "\"http://arandomapibaseurl.com\""
build.gradle in app:
buildConfigField "String", "API_BASE_URL", "\"http://myrealapi.com\""
Qualche idea su come realizzare questo?
Grazie!
IIRC, hai due classi 'BuildConfig' separate, una per il pacchetto della tua libreria e una per il pacchetto della tua app. La tua libreria non sa nulla del 'BuildConfig' dell'app, e non sono a conoscenza di un modo in cui un'app sovrascrive' BuildConfig' dalla libreria. Potrebbe essere necessario esplorare altre opzioni (ad esempio, '' elementi manifest che puntano a risorse XML, configurazione ordinaria basata su Java, risorse sovrascritte). –
CommonsWare