1

Можно ли иметь следующие настройки:Gradle ароматизаторов с Продублируйте именами, но разной размерности

flavorDimension "production", "staging" 

productFlavors { 
    staging { 
     dimension "staging" 
     ... 
    } 

    production { 
     dimension "production" 
     ... 
    } 

    flavorOne { 
     dimension "staging" 
     ... 
    } 

    flavorOne { 
     dimension "production" 
     ... 
    } 

} 

flavorOne существует два раза и содержит различные настройки, но и с различными размерами.

Мне нужен ароматический ароматизатор с производством и постановкой, а также файлы res для ароматизатора и ароматизатора. Если я делаю это так, я вижу только flavorOneStagingDebug и flavorOneStagingRelease (выпуск и отладка - мои типы buildty), но не flavorOneProduction ..

Нужно ли создавать аромат для каждой комбинации? Подстановка и производство содержит данные, которые никогда не меняются, кроме файлов res и flavorOne - это всего лишь один из N. Я не хочу создавать N * 2 вкусов, чтобы каждый вкус был в производстве и постановке? Любые решения?

ответ

0

Пожалуйста, прочитайте: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Multi-flavor-variants

Там вы должны увидеть, что вы должны на это наоборот: есть производство и постановка применяется в качестве ароматизаторов и, возможно, затем применить размеры на них (если его еще требуется).

+0

Я читал это уже, но это не объясняет, в чем я нуждаюсь. Сейчас у меня 4 аромата. Flavor1Staging, Flavor1Production, Flavor2Staging и Flavor2Production. Если я добавлю еще один аромат, я должен создать всегда 2. постановка и постановка имеют разные настройки, но также Flavor1 и Flavor2. Например: постановка имеет флаг ads = false, production ads = true, а Flavor1 имеет значение url = xyz, а Flavor2 имеет url = yzx. Измерение не может иметь значения по умолчанию? – Informatic0re

+0

Мне нужно что-то вроде: Flavor1 extends Staging – Informatic0re

+0

Я не думаю, что это возможно, поскольку это всегда умножается. Возможно, это будет вариант для вас, чтобы отключить ароматы, которые вы не хотите, на градирне градации. –

1

AFAIK нет по умолчанию способ не делать этого - у меня была такая же проблема, когда и решить ее так:

applicationVariants.all {вариант ->

def variantName = variant.name 
    if (variantName == "flavorOneProduction") { 
     variant.buildConfigField "String", "FOO",'"BAR"' 
    } else if (variantName == "flavorOneStaging") { 
     variant.buildConfigField "String", "FOO",'"BAR2"' 
    } else if (variantName == "flavorTwoProduction") { 
     variant.buildConfigField "String", "FOO",'"BAR3"' 
    } else if (variantName == "flavorTwoStaging") { 
     variant.buildConfigField "String", "FOO",'"BAR4"' 
    } 
} 

Я думаю, вы получите суть

1

Что вам нужно:

flavorDimension "environment", "flavorType" 

productFlavors { 
    staging { 
     dimension "environment" 
     ... 
    } 

    production { 
     dimension "environment" 
     ... 
    } 

    flavorOne { 
     dimension "flavorType" 
     ... 
    } 

    flavorTwo { 
     dimension "flavorType" 
     ... 
    } 

} 

Предполагая, что ваши типы сборки являются выпуск и отлаживать, это будет производить:

staging-flavorone-release.apk 
staging-flavorone-debug.apk 
staging-flavortwo-release.apk 
staging-flavortwo-debug.apk 
release-flavorone-release.apk 
release-flavorone-debug.apk 
release-flavortwo-release.apk 
release-flavortwo-debug.apk 
Смежные вопросы