Intereting Posts
Разрешение записи на SD-карту Android SD с использованием SAF (Storage Access Framework) Групповой клик-прослушиватель в раскрывающемся списке просмотра Android Как я могу показать pm только в своих цифровых часах StartActivity не работает при вызове BroadcastReciever Почему LogCat полон ошибок? Переопределение андроида: эллипсис на субтитре ActionBar Android, быстрый вопрос о лучших практиках Цикл Android MediaPlayer имеет пробелы даже с форматом OGG Просто прочитайте тег NFC Полоса прокрутки не отображается в RecyclerView Необходимость захвата избирательного STDOUT из Android для отображения в виде списка OpenGL ES Tracer не собирает никаких данных на моем Nexus 10 Могу ли я скрыть кнопку изображения на макете (размеры и фон) до тех пор, пока не появится вызов, чтобы установить видимость? Как управлять кодом для разных дизайнов для поддержки всех устройств Почему область щелчков Android имеет более широкий радиус, чем touchstart? Как я могу сделать это последовательным?

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