В приложении Multi Flavor, как избежать дублирования ресурсов

Если у меня есть 3 ароматизатора flavour1, flavour2 и flavour3, у каждого ароматизатора есть версии "sub-flavors" Dev,Pat и Prod, у которых разные параметры, но у каждого основного аромата разные ресурсы.

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

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

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

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'
        }

}    

2 ответа

Решение

Вы нуждаетесь в ароматах 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

Например:

android.sourceSets.flavor1DebugМестоположение src / flav1Debug/

android.sourceSets.flavor1ReleaseМестоположение src / flav1Release/

android.sourceSets.flavor2DebugРасположение src / flavour2Debug/

android.sourceSets.flavor2ReleaseРасположение src / flavour2Release/

Кроме того, этот вопрос очень похож. Как мне указать исходный набор buildType для аромата?

Просто поместите общие ресурсы в main / res. Все ресурсы в 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">main@abc.com</string>
    <string name="app_phone">123</string>
    <string name="app_website">www.abc.com</string>
</resources>

и файл со строкой изменения: /src/flavor1/res/values/strings.xml

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

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

Другие вопросы по тегам