Я пытаюсь перенести приложение Android с Eclipse на Android Studio. Приложение, естественно, имеет 3 вкусовых измерения, что-то вроде:
flavorDimensions("skin", "cost", "market")
productFlavors {
skin1 {
flavorDimension "skin"
}
skin2 {
flavorDimension "skin"
}
free {
flavorDimension "cost"
}
paid {
flavorDimension "cost"
}
google {
flavorDimension "market"
}
samsung {
flavorDimension "market"
}
amazon {
flavorDimension "market"
}
С этим у меня есть три несколько связанных проблемы, для которых я не могу найти четкого решения.
Первая проблема заключается в том, что «applicationId» зависит от 2 из 3 параметров, скина и стоимости. Из приведенного выше примера, если я создам skin1PaidGoogle, у меня будет «com.example.skin1», если я создам skin2FreeAmazon, мне понадобится «com.example.skin2_free». Это живое приложение, поэтому здесь нет возможности что-то изменить. Как этого можно достичь.
Вторая проблема заключается в необходимости пользовательских наборов src/res. По умолчанию у меня есть папки для каждого вкуса и для всех комбинаций ВСЕХ вкусов. Итак, я получаю папки для «skin1», «skin2», «free», «Google» и т. д., а также папки для «skin1FreeGoogle» и «skin1PaidAmazon» и т. д. Я знаю, что также получаю варианты типа сборки. Мне также нужны папки типа «skin1Free», «freeAmazon», «FreeGoogle». Мне нужно только небольшое подмножество множества возможностей здесь. Как можно добавить эти дополнительные папки в соответствующие srcSets? Я знаю порядок приоритетов, влияющий на слияние, но я могу справиться с этим, если просто добавлю папки.
Третья проблема связана с зависимостями. У меня могут быть строки «компилировать», и у меня могут быть строки «freeCompile», но мне также нужны строки типа «freeAmazonCompile».
Мне кажется, что без этих возможностей мне придется либо пойти на множество компромиссов, либо иметь много дублированных srcSets, поэтому любая помощь очень ценится.