web-dev-qa-db-fra.com

Comment supprimer une ressource chaîne non utilisée pour toutes les configurations dans Android Studio?

J'ai trouvé une chaîne inutilisée, telle que:

<string name="obsoletestring">my name is null!</string>

Cependant, il se trouve dans des dizaines de fichiers, de langues différentes, dans différents fichiers strings.xml dans des dossiers values, values-af, values-be, etc.

Je dois avoir manqué quelque chose pour ne pas savoir comment faire cela dans Android Studio, si ce n'est de le modifier manuellement, un à un. 

tl; dr Comment supprimer une ressource chaîne inutilisée pour toutes les configurations?

29

Il est maintenant possible dans Android Studio . Après vérification de Lint, une option apparaît à droite Supprimer toutes les ressources non utilisées!

 enter image description here

Pour supprimer une ressource de chaîne unique parmi tous les fichiers de paramètres régionaux, vous pouvez utiliser "Editeur de traduction". 1. Faites un clic droit sur le répertoire res pour ouvrir l'éditeur de traduction. 2. Sélectionnez le sélecteur "Afficher toutes les clés", puis choisissez "Filtrer par texte". Indiquez le nom de la ressource que vous souhaitez supprimer . 3. Sélectionnez la ressource et cliquez sur le bouton "-"

15
chrisonline

Jusqu'à ce que le support de IDE arrive, quelque chose dans ce sens fonctionnera:

find -name strings.xml|xargs -rd\\n  sed -ri '/"string_to_delete"/d'
5

Dans Android Studio 2.3, il est possible de supprimer toutes les ressources inutilisées.

  • Ouvrez n'importe quel fichier * .xml dans votre répertoire res/values ​​/
  • Clic droit sur le nom de n'importe quel élément
  • Refactor -> Remove Unused Resources...
3
stone
  1. Menu -> Analyser -> Exécuter l'inspection par nom -> Ressources non utilisées
  2. Dans les résultats, sélectionnez toutes les ressources de chaîne inutilisées. 

    • Cliquez avec le bouton droit de la souris sur les lignes en surbrillance et choisissez "Supprimer avec @SuppressLint (Java) ou tools: ignore (XML)". Cela ajoutera les outils d'attribut: ignorer toutes les chaînes dans tous les fichiers de chaîne.
  3. Menu -> Rechercher -> Remplacer dans le chemin

    • Texte à trouver: ^. *? Tools: ignore = "UnusedResources". *?\N
    • Cochez la case expression régulière
    • Utiliser la portée: Personnalisé
      • Ouvrez l'éditeur d'étendue personnalisée et ajoutez un motif: fichier [app]: src/main/res // strings.xml
    • Trouver
    • Etc.
2
passerby

Malheureusement, vous devez le faire manuellement.

Cochez cette réponse pour comprendre ce que vous devez faire exactement pour vous en débarrasser en utilisant Eclipse 

Si vous utilisez Android Studio, localisez-les dans l’ensemble de l’application et supprimez-les également manuellement. Cochez cette réponse

2
Sami Eltamawy

En fait, Android Lint devrait faire un rapport sur les ressources inutilisées, mais vous pouvez aussi essayer avec this Nice plugin.

0
azurh

Notez que la commande REMOVE UNUSED RESOURCES ne peut pas reconnaître une ressource à accès programmatique comme une ressource utilisée (telle que getIdentifier (..) etc.) . Ainsi, si vous accédez aux ressources de cette façon, il est très risqué d'utiliser cette commande. !!

0
Hanoch Moreno