Intereting Posts
Как установить изображение в центре в FrameLayout Как создать файл с доступным для чтения разрешением в каталоге подкаталога файлов Facebook SDK 3.5 Вход через приложение не работает Лучшая практика: AsyncTask во время изменения ориентации Android, получающий изображение из галереи, вращается Int массивы в intbuffer для Android OpenGL ES 1.0? Как я могу получить доступ к элементу просмотра элемента в представлении ресайклера? Могу ли я заставить пользователя согласиться с юридической оговоркой перед установкой приложения для Android? Почему Java (Android?) Устанавливает дату последнего изменения моего файла завтра? Реализовать анимацию падающего пальца на Google Maps android Объединение переписей Java с точечным синтаксисом (enum.value1.value2)? Можно ли создать приложение Android с помощью PhoneGap строго внутри Visual Studio? Просмотр списка в Libgdx Каков эффект использования targetSDKVersion в Android? Как продолжить тестирование инструментальных средств Android после исключения?

Ресурсы библиотеки Android-градиентов в вкусе продукта

Обновлен до градиента 1.12, плагин gradle для студии android 0.10.

Мой проект имеет следующую структуру:

  • 3rdparty

    • Графика
      • Iconsets
        • IconsetBase (андроидная библиотека)
        • Iconset1 (андроид-библиотека)
        • Iconset2 (андроид-библиотека)
  • MainProject

    • ЦСИ
      • Основной (основной проект)
      • flavor1
      • flavor2

Как получить содержимое папки res IconsetBase + Iconset1 для объединения в flavor1 и IconsetBase + Iconset2 в flavor2?

Перед обновлением до новой градации это работало как библиотеки (IconsetBase, Iconset1 и Iconset2), имеющее такое же название пакета, как и основное

Вот мой build.gradle основного проекта:

buildscript { repositories { mavenCentral() } dependencies { repositories { mavenCentral() } classpath 'com.android.tools.build:gradle:0.10.0' } } apply plugin: 'android' repositories { mavenCentral() } android { useOldManifestMerger false compileSdkVersion 19 buildToolsVersion "19.0.3" lintOptions { ... } sourceSets { main.java.srcDirs = ['src/main/java'] main.resources.srcDirs = ['src/main/res'] } signingConfigs { ... } buildTypes { ... } // Common dependencies dependencies { compile project(':3rdparty:Graphics:Iconsets:IconsetBase') } defaultConfig { ... } productFlavors { flavor1 { packageName "..."} flavor2 { packageName "..."} } android.sourceSets.flavor1 { dependencies { compile project(':3rdparty:Graphics:Iconsets:Iconset1') } res { srcDir 'flavor1' } resources { srcDir 'flavor1' } } android.sourceSets.flavor2 { dependencies { compile project(':3rdparty:Graphics:Iconsets:Iconset2') } res { srcDir 'flavor2' } resources { srcDir 'flavor2' } } } dependencies { compile 'com.android.support:support-v4:19.1.0' compile 'com.android.support:appcompat-v7:19.1.0' compile 'com.google.android.gms:play-services:4.3.23' } 

= = РЕДАКТИРОВАТЬ

Дальнейшее объяснение:

Я стараюсь объединить ресурсы из другого места динамически.

Фон: flavor1 имеет значок значка с изображениями icon1 и icon2, у flavor2 есть базовый набор иконок и значок1 и значок2, но значки разные на каждый набор значков. В противном случае мне пришлось бы много раз добавлять иконки1, icon2 и т. Д. Для каждого вкуса, а также об обновлениях / изменениях этих значков. Это должно быть сделано для каждого существующего аромата (у меня больше 20)

Может ли это быть достигнуто с помощью некоторой пользовательской задачи без библиотек?

Вы можете определить конкретную зависимость по вкусу:

 productFlavors { flavor1 { ... dependencies { flavor1Compile project(':iconSet1') } } flavor2 { ... dependencies { flavor2Compile project(':iconSet2') } } } 

В вашей сборке зависимости находятся в SourceSets, и это неправильно.


РЕДАКТИРОВАТЬ

Хорошо, надеюсь, я лучше пойму твою цель сейчас. Что вы можете сделать, так это определить несколько каталогов ресурсов для каждого аромата:

 android { sourceSets { flavor1 { res.srcDirs = ['flavor1','../3rdparty/Graphics/Iconsets/Iconset1/res'] } flavor2 { res.srcDirs = ['flavor2','../3rdparty/Graphics/Iconsets/Iconset2/res'] } } }