J'ai deux types de build définis dans mon fichier gradle: debug
et release
. Je voudrais pouvoir définir une icône d'application différente pour le debug
type de construction. Existe-t-il un moyen d'y parvenir uniquement via le type de construction, sans entrer dans les saveurs du produit? Le fichier build.gradle est ci-dessous.
apply plugin: 'android'
//...
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
versionCode 30
versionName "2.0"
}
buildTypes {
debug {
packageNameSuffix '.debug'
versionNameSuffix '-SNAPSHOT'
}
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
Réponses:
Deviner. Ce que vous devez faire est de créer un dossier src distinct appelé
debug
qui contient les différentes icônes. Par exemple, si la disposition de votre projet est la suivante et que l'icône de votre lanceur est appeléeic_launcher.png
:Ensuite, pour ajouter une icône distincte pour le type de build de débogage, vous ajoutez:
Ensuite, lorsque vous construisez sous le type de build debug, il utilisera le ic_launcher trouvé dans le dossier debug.
la source
La meilleure façon: la réponse de InsanityOnABun
AndroidManifest.xml
build.gradle
l'url Github: créer une application multi-version avec Gradle
la source
manifestPlaceholders
seul dans la phase d'exécution ou derrière l'if
instruction et . Je fais cela parce que j'ai 1 type de construction non-production qui peut avoir deux icônes différentes (et je ne veux pas avoir un type de construction entier avec seulement 1 différence avec l'autre)Vous pouvez également spécifier l'icône dans le fichier partiel AndroidManifest.xml de la saveur du produit:
Cela écrasera l'icône que vous spécifiez dans le fichier AndroidManifest.xml d'origine
la source
ic_launcher.png
, avoir à savoir laquelle est laquelle uniquement par où elle se trouve ou en l'ouvrant réellement (pas si agréable). Je ne savais pas que ce type d' extension pour le fichier manifeste était même possible, je ne l'ai pas vu mentionné ailleurs sur SO ou autrement avant ici. Élégant à coup sûrPour obtenir différentes icônes tout en utilisant différentes saveurs avec plusieurs dimensions, telles que:
Ceci peut être réalisé comme:
Tout d'abord, placez les ressources de débogage dans des dossiers séparés, tels que:
Deuxièmement, la clé avec plusieurs dimensions de saveur est que le nom de l'ensemble de sources doit contenir toutes les combinaisons de saveurs possibles, même si certaines de ces dimensions n'affectent pas l'icône.
Pour être clair, ce qui suit ne fonctionnera pas lorsque plusieurs dimensions sont utilisées:
la source
Solution étape par étape, y compris le remplacement de mipmap-anydpi-v26 et la conservation des fichiers pour toutes les dimensions:
Définissez d'abord dans build.gradle (Module: app) votre type de build dans android -> buildTypes -> debug, internal, etc.
Dans la hiérarchie du projet, sous Android, cliquez avec le bouton droit sur l'application -> Nouveau -> Image Asset -> dans Chemin, choisissez votre icône -> toute autre modification sur la couche d'arrière-plan et l'héritage -> Suivant -> dans Res Directory, choisissez le type de construction souhaité ( debug, interne, principal, etc.) -> Terminer
De cette façon, les icônes remplaceront chaque ancienne icône que vous aviez.
la source