2017-01-27 6 views
0

У меня есть 2 приложения, использующие те же изображения и ресурсы, кроме AppIcon. Общим решением для этого является отдельная папка для каждого приложения под управлением src и настройка градиента для использования соответствующей папки.Варианты сборки и разные AppIcons

В моем случае 99% ресурсов используется в обоих приложениях, но только для приложения отличается.

Должен ли я по-прежнему использовать механизм наличия разных папок res или есть также более простой способ, поэтому мне не нужно клонировать все ресурсы?

Я думал, что я мог бы сделать что-то вроде этого: У меня есть AndroidManifest запись следующим образом:

<application android:name="bla.bla.MyApplication" android:largeHeap="true" android:icon="@drawable/icon" android:label="@string/app_name"> 

я могу перезаписать имя в Gradle, как следовать, который работает отлично:

demo { 
    resValue "string", "app_name", "This is the Demo" 
    resValue "drawable", "icon", "demoicon" 
} 

Есть ли способ переписать имя значка таким же образом?

Как вы можете видеть в фрагменте выше, я уже пробовал, но получаю ошибку Duplicate resources, потому что мой демонстрационный код, сохраненный под res/drawable, генерируется автоматически.

ответ

0

Если ваши вкусы имя, как производство, то:

android.sourceSets.production 
{ 
    res.srcDirs = ['res', '/path/to/production/res/dir'] 
} 

, а затем в вашем/путь/к/производство/RES/реж/drawable- * вы бы ваш значок запуска.

+0

Но тогда Я должен клонировать ресурсы ресурсов дыр из тестовой папки в производственную папку, и мне придется иметь папки с большим количеством ресурсов в два раза, не так ли? Я хотел бы поделиться всем остальным, кроме значка. –

0

Isolved это следующим образом:

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

Это может быть сделано с manifestPlaceholders:

В моей build.gradle:

buildTypes { 
demo { 

      manifestPlaceholders = [iconpath:"@drawable/icon_timeline_test"] 
     } 

он заменит значок в AndroidManifest, когда ссылается следующим образом:

android:icon="${iconpath}" 
Смежные вопросы