Ho un progetto e ha 2 sapori dei prodotti con i propri indici:Come risolvere l'errore di compilazione per l'aroma del prodotto, quando non si trova una fonte/risorsa referenziata ma non necessaria?
build.gradle:
android {
...
productFlavors {
free {
applicationId "com.sample.free"
buildConfigField "boolean", "free", "true"
}
paid {
applicationId "com.sample"
buildConfigField "boolean", "free", "false"
}
}
}
e ho una classe (come PaidOperationClass
) che viene utilizzato solo a paid
sapore. Quindi, ho messo quella classe sotto la directory src/paid/java
. E ho un'altra classe (come CommonClass
) che viene utilizzata da entrambi i sapori. Così ho messo che sotto src/main/java
directory:
src/main/ --> has CommonClass
src/free/
src/paid/ --> has PaidOperationClass
In CommonClass
Ho un metodo come ad esempio:
if(!BuildConfig.FREE) {
PaidOperationClass.doSomeStuff();
}
Così il PaidOperationClass
viene fatto riferimento (ha un import) ma mai usata da accumulo libero.
Se si crea l'applicazione per il sapore paid
, tutto funziona perfettamente. Ma se provo a crearlo per l'aroma free
, fallisce perché la classe di riferimento ma non necessaria non viene trovata. Come si risolve questo senza la replica del codice (classe/metodo) (come mettere un manichino PaidOperationClass
con il sapore free
)? Ci sono delle opzioni di gradle che ignorano questo tipo di errori di compilazione durante la costruzione?
Modifica: Ho bisogno di una soluzione gradle che non necessiti di replica del codice. Forse uno script personalizzato basato su annotazioni, che rimuove il codice non necessario per i sapori del prodotto in fase di compilazione.
No, devi aggiustarlo nel tuo codice. –
@MimmoGrottoli si ma ci deve essere un modo semplice con gradle. – Devrim
No, non c'è. Gradle è il sistema di generazione, non il codice dell'app. –