web-dev-qa-db-fra.com

Icône adaptative ne fonctionne pas

manifeste:

<application
    Android:name="..."
    Android:allowBackup="false"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/MyTheme"
    tools:replace="icon,label,theme,name,allowBackup">

sous le dossier mipmap-anydpi-v26 j'ai défini ic_launcher.xml:

<adaptive-icon xmlns:Android="http://schemas.Android.com/apk/res/Android">
   <background Android:drawable="@color/white"/>
   <foreground Android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

voici la structure de mon dossier:  enter image description here

build.gradle:

compileSdkVersion = 26
buildToolsVersion = "25.0.2"
supportLibVersion = "25.3.1"
targetSdkVersion = 25
minSdkVersion = 18

ET j'utilise Android studio 3.0

mais le résultat final est que je reçois une icône Android par défaut au lieu de celle que j'ai fournie.

J'ai aussi essayé de mettre le png au premier plan dans tous les dossiers de densité (mipmap-xhdpi, etc.), bien que j'utilise le même png pour tous quand je l'ai fait juste pour le test

10
Siavash

Adaptive icon requied API 26 vous devez donc mettre à jour vos outils de génération vers la version 26.0.0 minimum

8
Karol Kulbaka

J'ai essayé de le déboguer en utilisant un <ImageView>. Lorsque je l’ai fait, j’ai reçu une trace se terminant par:

Caused by: Java.lang.IllegalArgumentException: Path string cannot be empty.

Il s'avère que mon ic_launcher_foreground.xml avait des éléments <path> avec des attributs Android:pathData vides.

La suppression de ces <path>s vides a fait fonctionner l’icône!

0
Mikel

J'ai eu du mal à afficher mon icône adaptative. Il s'avère que je n'avais rien fait de mal. Il a commencé à fonctionner après avoir réalisé un «projet propre» dans Android Studio.

0
aaronmarino

ic_launcher.xml devrait être comme ça 

<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon
    xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <background Android:drawable="@color/white"/>
    <foreground Android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>
0
Biki

J'ai moi aussi fait face au même problème, voici comment j'ai résolu ce problème 

  1. Faites un clic droit sur la ressource -> Nouveau -> ImageAsset

  2. Choisissez l'icône ic_launcher_background et ic_launcher_foreground comme indiqué dans l'écran ci-dessous

 enter image description here

  1. Le studio Android crée un fichier ic_launcher.xml sous la ressource mipmap (anydpi-v26).

     <?xml version="1.0" encoding="utf-8"?>
    <adaptive-icon xmlns:Android="http://schemas.Android.com/apk/res/Android">
        <background Android:drawable="@mipmap/ic_launcher_background"/>
        <foreground Android:drawable="@mipmap/ic_launcher_foreground"/>
    </adaptive-icon>
    
  2. Maintenant, dans le fichier Manifest.XML, déclarez l’icône et l’icône arrondie

    <application
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:roundIcon="@mipmap/ic_launcher"
    Android:supportsRtl="true"
    Android:theme="@style/AppTheme">
    
    
                    .......</application>
    

    Oui c'est tout et Exécuter votre application sur n'importe quel appareil, il apparaît 

0
Suresh Maidaragi