titulo studio personalizar icono ejemplo desplegable color cambiar bar agregar android gradle android-gradle android-icons application-icon

android - studio - Cómo proporcionar un icono de iniciador diferente por sabor de producto



navigationview android (1)

Tengo un proyecto definido por el archivo build.gradle

buildscript { repositories { mavenCentral() } dependencies { classpath ''com.android.tools.build:gradle:0.5.6'' } } apply plugin: ''android'' dependencies { compile fileTree(dir: ''libs'', include: ''*.jar'') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" sourceSets { main { manifest.srcFile ''AndroidManifest.xml'' java.srcDirs = [''src''] resources.srcDirs = [''resources''] aidl.srcDirs = [''src''] renderscript.srcDirs = [''src''] res.srcDirs = [''res''] assets.srcDirs = [''assets''] } instrumentTest.setRoot(''tests'') } defaultConfig { ... } signingConfigs { debug { storeFile file("debug.keystore") } release { ... } } buildTypes { debug { debuggable true jniDebugBuild true signingConfig signingConfigs.debug packageNameSuffix ".debug" versionNameSuffix ".debug" } release { debuggable false jniDebugBuild false signingConfig signingConfigs.release } } flavorGroups "version", "market" productFlavors { amazon { flavorGroup "market" buildConfig "public static final int COMPILATION = 1;" } google { flavorGroup "market" buildConfig "public static final int COMPILATION = 0;" } lite { flavorGroup "version" packageName = "package.name.lite" } full { flavorGroup "version" packageName = "package.name.full" } } android.sourceSets.amazon { res { srcDir "amazon" } manifest { srcFile "amazon/AndroidManifest.xml" } } android.sourceSets.google { res { srcDir "google" } } android.sourceSets.full { res { srcDir "full" } } android.sourceSets.lite { res { srcDir "lite" } } }

Funciona bien, pero ahora quiero proporcionar iconos de iniciador específicos para cada sabor de producto. Traté de poner un archivo Manifest adicional para Amazon, pero no funcionó. Me aparece un error "Duplica los archivos copiados en APK AndroidManifest.xml". ¿Qué podría estar mal?


Usted tiene un par de opciones:

  1. Cambie al nuevo diseño de android studio / gradle y cree carpetas para sus productFlavors:

    src/main/ - Código / recursos compartidos en todos los sabores
    src/amazon - Código / recursos específicos de Amazon en todos los sabores
    src/google - Google código / recursos específicos entre todos los sabores

    Entonces, en su manifiesto principal ( src/main/AndroidManifest.xml ) si su android:icon @drawable/icon , usted tendría el icono apropiado ubicado en src/amazon/res/drawable-*/icon.png y del mismo modo para el resto de su productoFlavors.

  2. Mantenga su diseño existente (y build.gradle) y anexe un directorio de recursos a los res.srcDirs :

Entonces, para su conjunto de orígenes de Amazon:

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

Y luego en tu /path/to/amazon/res/dir/drawable-* tendrías el ícono del iniciador.