Вариант Multi-flavor от Android Gradle

Я пытаюсь построить проект на основе градиента с группами вкуса. Группы являются «рынком» и «стоимостью». Проблема заключается в управлении зависимостями.

Например, я хотел бы сделать что-то вроде compileFreeGplay 'com.google.android.gms:play-services:5.0.89' , который еще не поддерживается плагином Android для градиента.

Поэтому я использовал решение, основанное на этом вопросе SO: https://stackoverflow.com/a/22584908/2904294

Решение работает и правильно заполняет следующие глобальные переменные в зависимости от построенного варианта:

 ext { buildType = "" groupCost = "" groupMarket = "" } 

Это раздел зависимостей:

 dependencies { compile 'com.android.support:support-v4:20+' compile 'com.android.support:appcompat-v7:20+' compile 'com.google.android.gms:play-services:5.0.89' println groupMarket + ", " + groupCost if (groupMarket == 'gplay' && groupCost == 'free') { compile files('C:\\Program Files (x86)\\adsSdks\\MobileCoreLibrary\\mobilecore_V0.9.4.jar') println 'inside!!' } else if (groupMarket == 'amazon' && groupCost == 'free') { compile files('C:\\Program Files (x86)\\adsSdks\\Apps-SDK\\Android\\Ads\\lib\\amazon-ads-5.4.78.jar') } } 

Все printlns отображаются правильно, и код вводится в ifs как ожидалось. Однако библиотека до сих пор не включена в проект.

Он отлично работает, если я размещаю его вне ifs например:

 dependencies { compile 'com.android.support:support-v4:20+' compile 'com.android.support:appcompat-v7:20+' compile 'com.google.android.gms:play-services:5.0.89' compile files('C:\\Program Files (x86)\\adsSdks\\MobileCoreLibrary\\mobilecore_V0.9.4.jar') } 

Может ли кто-нибудь с большим опытом Gradle указать, что мне здесь не хватает? Спасибо!

Intereting Posts
Создание Google TV AVD на окнах, не отвлекающих системный образ x86 FindFragmentById возвращает null Программно использовать setTextSize для? Attr / textAppearanceLarge Не должны ли ссылки на строку ссылаться на имена действий фильтра намерений в AndroidManifest? Преобразование массива байтов NV21 в растровый читаемый формат Qt Android / iOS: как управлять объемом устройства в qml Не удалось создать экземпляр com.android.menubar.internal.MenuBarEnhancerCocoa Построение WifiConfiguration из ScanResult или: Интерпретация возможностей «ScanResult» String Могу ли я изменить свое местоположение на Android-картах? Как получить идентификатор пользователя FB с помощью кнопки входа в Facebook в приложении android Какова единица измерения по умолчанию в React Native? Разница между TextInputLayout и TextInputEditText Android.view.InflateException (ошибка раздувания класса) только на производстве Изменение цвета по умолчанию для Android CheckBox Check Mark Как выполнить ручную проверку подлинности IPC