3

Если у меня есть 3 аромата вкуса1, flavor2 и flavour3, у каждого аромата есть версии Dev, Pat и Prod «sub-flavors», которые имеют разные параметры, но каждый главный аромат имеет разные ресурсы.В приложении Multi Flavor, как избежать дублирования ресурсов

Итак, у меня теперь 9 различных вкусов, но только 3 разных папки ресурсов). Я хотел бы, чтобы те же «суб-ароматы» использовали одни и те же ресурсы.

Как я могу это сделать? Я видел в документации о параметрах flavorDimensions, но не уверен, как настроить папку ресурсов.

В настоящее время я использую что-то вроде

sourceSets { 

    flavor1_dev{ 
      res.srcDir 'src/flavor1/res' 
     } 

    flavor1_prod{ 
      res.srcDir 'src/flavor1/res' 
     } 

    flavor2_dev{ 
      res.srcDir 'src/flavor2/res' 
     } 

    flavor2_prod{ 
      res.srcDir 'src/flavor2/res' 
     } 

}  
+0

И это работает? –

+0

Да, это работает, но я хотел бы знать, как использовать flavorDimensions, или если есть какой-либо другой способ сделать это. –

+0

Вы можете исключить ресурсы из разных сборников ароматов, проверьте это https://stackoverflow.com/questions/33263567/how-to-exclude-res-folder-from-gradle-build-flavours/45581826#45581826 – lxknvlk

ответ

1

Вам нужно Gradle ароматизаторов например. flavor1, flavor2 и т.д., а также типы Построить как dev, prod и т.д.

Смотрите пример из: http://developer.android.com/tools/building/configuring-gradle.html и http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Sourcesets-and-Dependencies

Например:

android.sourceSets.flavor1Debug Расположение ЦСИ/flavor1Debug/

android.sourceSets.flavor1Release Местонахождение src/flavor1Release/

android.sourceSets.flavor2Debug Расположение ЦСИ/flavor2Debug/

android.sourceSets.flavor2Release Расположение ЦСИ/flavor2Release/

Кроме того, этот вопрос очень похож How can I specify per flavor buildType sourceSets?

+0

Любая идея о том, как сделать это с ароматом? http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Multi-flavor-variants –

-1

Просто положи общие ресурсы в основных/Рез. Все ресурсы в main/res будут отменены вкусом. Например, если вы хотите переопределить строковые ресурсы добавить,

Основная строка файла: /src/main/res/values/strings.xml

<resources> 
    <string name="app_name">Main</string> 
    <string name="app_name_full">Main app</string> 
    <string name="app_email">[email protected]</string> 
    <string name="app_phone">123</string> 
    <string name="app_website">www.abc.com</string> 
</resources> 

и аромат строка файла:/SRC/flavor1/Рез /values/strings.xml

<resources> 
    <string name="app_name">Flavour App Name</string> 
</resources> 

только app_name собирается изменить в аромате и других ресурсов, таких как app_full_name еще доступна во всех вкусов.

+0

Вы не можете использовать main и ожидать его переопределения. Это не будет работать. Главная должна использоваться для «во всем», иначе ее нужно разделить. – StarWind0

+0

@StarWind имеет смысл, что это не сработает во время компиляции с «дублирующими ресурсами», – box

Смежные вопросы