Intereting Posts
Как проверить программно, если приложение установлено или нет в Android? Lazy загружает изображения в gridView TextInputLayout не показывает подсказку EditText, прежде чем пользователь будет фокусироваться на ней Как получить статистику батареи в Android во время выполнения? Альтернатива com.android.camera.action.CROP? Активность в действии: Intent, Android Будет ли он экономить много памяти, используя 9-патч-изображения? Окно jQuery addClass вызывает прокрутку вверх и вниз на Android и iPhone Как отключить строку состояния или панель уведомлений, но не отключить строку заголовка в android? Невозможно получить доступ к AAssetManager в собственном коде, переданном с Java в WallpaperService Android удалить некоторые изображения из кеша Picasso Почему некоторые HTTPS-запросы не могут расшифровать на Fiddler, а некоторые работают? Включить клавиатуру электронной почты в android для ввода типа электронной почты Я использую PhoneGap, и на моих страницах я пытаюсь использовать FontAwesome, но он не работает? NestedScrollView canScrollVertically возвращает false для контента определенного размера

Вариант 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 указать, что мне здесь не хватает? Спасибо!