2

Как известно, существует два способа иметь отдельные каталоги res для каждого productFlavor или buildType.Слияние ресурсов во время построения градиентов с разными подходами

Первый подход имеет отдельные каталоги под папкой src, например. src\flavor1\res, src\flavor2\res и т.д.

Второй подход это указание каталога res под sourceSets в build.gradle как

sourceSets { 
    main { 
     res.srcDirs = ['res'] 
    } 
    dev { 
     res.srcDirs = ['res-dev'] 
    } 
} 

Я знаю, что объединение ресурсов будет происходить в первом подходе и любого недостающего ресурса в отдельном каталоге для аромата будет взята из исходного набора main.

Вопрос о Второй подход выше.

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

Я спрашиваю это из примера в THIS LINK on http://tools.android.com/, где в конце статьи он показывает 'src/main/res' быть явно добавлена ​​следующим образом:

android.sourceSets { 
    main.res.srcDirs = ['src/main/res', 'src/main/res2'] 
} 

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

ответ

1

Хорошо, я опробовал для себя каждый из вышеуказанных сценариев. Выводы были следующими:

  1. Нет необходимости указывать каталог src\main\res. Резервное копирование происходит в обоих подходах к основному каталогу res.
  2. Это хорошо работало как для res, так и для assets. И я предполагаю, что он будет работать точно так же и для других папок. Мне не нужны те, кто так не пытался. Но, я не могу думать о какой-либо причине, почему они не будут работать, когда res и assets папок.

Следовательно, он работает должным образом.

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