web-dev-qa-db-fra.com

Android Studio 3.3 n'autorise pas les icônes adaptatives pour la version SDK inférieure à 26

Je viens de passer de Android Studio 3.2.1 à 3.3. Auparavant, mon projet - cibler le SDK v28 - construit sans problème, maintenant j'obtiens cette erreur de construction:

  • Erreur: l'exécution a échoué pour la tâche ': app: processDebugResources'.

    La liaison de ressources Android a échoué C:\app\src\main\res\mipmap-anydpi-v25\ic_launcher_round.xml: erreur: les éléments <adaptive-icon> nécessitent une version sdk d'au moins 26.
    Erreur : échec de la liaison des ressources de fichier.

Évidemment, j'ai un <adaptive-icon> ressource dans le mipmap-anydpi-v25 dossier.

Donc, quelle version AS gère cela correctement; 3.2.1 ou 3.3? Dois-je retirer mon v25 icône? Je pensais que Lollipop avait un support pour ce type d'icônes ...

10
l33t

quelle version AS gère cela correctement; 3.2.1 ou 3.3?

Vraisemblablement 3.3, puisque des icônes adaptatives ont été ajoutées dans Android 8. (API Level 26).

Dois-je supprimer mon icône v25?

Changez le répertoire en mipmap-anydpi-v26/, et vous pouvez toujours utiliser cette icône pour Android 8.0+. Si votre minSdkVersion est en dessous (et je suppose que oui), vous aurez besoin d'une implémentation alternative de l'icône pour les appareils plus anciens.

Je pensais que Lollipop avait un support pour ce type d'icônes ...

Lollipop est Android 5.x, API niveau 21-22. Votre -v25 le répertoire ne serait pas utilisé pour ces niveaux d'API.

3
CommonsWare

Pour moi, dans AS 3.4, je devais:

Android Studio: File | Project Structure

enter image description here

Cela n'a pas fonctionné pour moi de pouvoir utiliser ajouter Nouveau | Ressource d'image en raison des icônes adaptatives JUSQU'À ce que j'ai fait cette dernière étape de suppression du SDK 25 de la liste même après avoir essayé de sélectionner correctement le SDK du projet et la construction Cible.

J'avais essayé plusieurs choses et c'était la dernière étape qui l'a fait fonctionner pour moi. Je ne sais pas si cela est particulier à quelque chose dans ma configuration, mais cela m'a dépassé.

3
tommycox

J'ai eu le même problème, la raison en est que j'ai foiré les fichiers manuellement mais je ne l'ai pas remarqué avant la mise à jour. Dans mon cas, après la mise à jour vers AS 3.3, les fichiers en conflit étaient:

  • drawable/ic_launcher_background.xml
  • drawable-v24/ic_launcher_foreground.xml

Bien que AS soit construit sans erreur en modifiant le min sdk "minSdkVersion 26" sur app/build.gradle, il n'est pas pratique à des fins de publication. la solution rapide et simple était:

  • créer un nouveau projet vierge
  • copier exactement les mêmes fichiers
  • et les remplacer dans le projet en conflit
1
Cristián