В проекте у меня есть несколько вариантов, несколько buildTypes и несколько папок для комбинаций
Комбинации сборки:

Структура папок

В каждой папке у меня есть собственный Класс приложения + AndroidManifest для регистрации этого Класса приложения

Иногда, но просто иногда сборка завершается с ошибкой невозможно найти символ:
\app\src\main\java\ru\my\package\app\environment\MyApp.java:35: ошибка: невозможно найти символ .core(новый CrashlyticsCore.Builder().disabled(!BuildConfig.ANALYTICS).build()) или App не зависит от класса, но та же ошибка
\app\src\main\java\ru\my\package\presentation\presenter\impl\MainPresenterImpl.java:104: ошибка: невозможно найти символ if (!BuildConfig.ANALYTICS) return; Но следующая сборка может оказаться успешной, поэтому возможный вариант развития событий:
[*]Сборка (успешная) [*]Некоторые изменения в коде. [*]Сборка (ошибка) [*]Повторная попытка сборки (успешная)
Мобильная версия