Mam dwa typy kompilacji ustawione w moim pliku gradle: debug
i release
. Chciałbym móc ustawić inną ikonę aplikacji dla debug
typu kompilacji. Czy istnieje sposób na to tylko poprzez typ kompilacji, bez wchodzenia w smaki produktu? build.gradle znajduje się poniżej.
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'])
}
Odpowiedzi:
Domyśliłam się. To, co musisz zrobić, to utworzyć oddzielny folder src o nazwie,
debug
który zawiera różne ikony. Na przykład, jeśli układ projektu wygląda następująco, a ikona programu uruchamiającego nazywa sięic_launcher.png
:Następnie, aby dodać oddzielną ikonę dla typu kompilacji do debugowania, dodaj:
Następnie, gdy budujesz w typie kompilacji debugowania, użyje on ic_launcher znalezionego w folderze debugowania.
źródło
Lepszy sposób: odpowiedź InsanityOnABun
AndroidManifest.xml
build.gradle
adres URL Github: Stwórz aplikację w wielu wersjach za pomocą Gradle
źródło
manifestPlaceholders
tylko w fazie wykonywania lub za iif
oświadczenie. Robię to, ponieważ mam 1 nieprodukcyjny typ kompilacji, który może mieć dwie różne ikony (i nie chcę mieć całego typu konstrukcji z tylko jedną różnicą w stosunku do drugiego)Możesz również określić ikonę w częściowym pliku AndroidManifest.xml smaku produktu:
Spowoduje to zastąpienie ikony określonej w oryginalnym pliku AndroidManifest.xml
źródło
ic_launcher.png
, koniecznością poznania, która z nich jest która tylko według tego, gdzie się znajduje lub faktycznie ją otwiera (nie tak miły). Nie wiedziałem, że tego rodzaju rozszerzenie pliku manifestu jest nawet możliwe, nie widziałem, aby wspomniano o tym nigdzie indziej w SO ani w innym miejscu wcześniej. Na pewno eleganckieAby uzyskać różne ikony, używając różnych smaków z wieloma wymiarami, takich jak:
Można to osiągnąć jako:
Najpierw umieść zasoby debugowania w oddzielnych folderach, takich jak:
Po drugie, wstaw klucz z wieloma wymiarami smaku, że nazwa zestawu źródeł musi zawierać wszystkie możliwe kombinacje smaków, nawet jeśli niektóre z tych wymiarów nie wpływają na ikonę.
Aby było jasne, poniższe elementy nie będą działać, gdy używanych jest wiele wymiarów:
źródło
Rozwiązanie krok po kroku, w tym wymiana mipmap-anydpi-v26 i przechowywanie plików dla wszystkich wymiarów:
Najpierw zdefiniuj w build.gradle (Module: app) swój typ kompilacji w systemie Android -> buildTypes -> debug, internal, etc
W hierarchii projektu, poniżej Androida, kliknij prawym przyciskiem myszy aplikację -> Nowy -> Zasób obrazu -> w ścieżce wybierz swoją ikonę -> wszelkie inne zmiany w warstwie tła i starszej wersji -> Dalej -> w katalogu Res wybierz żądany typ kompilacji ( debugowanie, wewnętrzne, główne itp.) -> Zakończ
W ten sposób ikony zastąpią wszystkie stare ikony.
źródło