Android использует Gradle Build в качестве кода, например if

Я пытаюсь работать со сбоями. В моем build.gradle я определил 2 аромата, нормальный вкус и аромат администратора.

В основном у администратора есть дополнительная кнопка для основной деятельности.

Я понимаю, что я могу определить разные пакеты / классы для разных вкусов. Но есть ли способ сделать что-то вроде случая, чтобы добавить / удалить кусок кода в зависимости от вкуса?

В основном мне нужны две версии Activity. Но я не хочу двух разных версий деятельности и поддерживаю их.

Поэтому в своей деятельности я хотел бы сделать

=> Gradle check if flavor is 'admin' => если да, добавьте этот код кнопки

Это возможно? Или вам понадобятся две разные физические операции и, таким образом, поддерживать их оба, когда вы добавите функциональность впоследствии.

Solutions Collecting From Web of "Android использует Gradle Build в качестве кода, например if"

BuildConfig.FLAVOR дает вам комбинированный вкус продукта. Поэтому, если у вас есть только один ароматизатор:

 productFlavors { normal { } admin { } } 

Тогда вы можете просто проверить его:

 if (BuildConfig.FLAVOR.equals("admin")) { ... } 

Но если у вас есть несколько ароматических размеров:

 flavorDimensions "access", "color" productFlavors { normal { dimension "access" } admin { dimension "access" } red { dimension "color" } blue { dimension "color" } } 

Есть также BuildConfig.FLAVOR_access и BuildConfig.FLAVOR_color поэтому вы должны проверить его следующим образом:

 if (BuildConfig.FLAVOR_access.equals("admin")) { ... } 

И BuildConfig.FLAVOR содержит полное название аромата. Например, adminBlue .

Чтобы избежать простой строки в этом состоянии, вы можете определить свойство boolean:

 productFlavors { normal { flavorDimension "access" buildConfigField 'boolean', 'IS_ADMIN', 'false' } admin { flavorDimension "access" buildConfigField 'boolean', 'IS_ADMIN', 'true' } } 

Затем вы можете использовать его так:

 if (BuildConfig.IS_ADMIN) { ... }