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?
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!
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 "-"
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'
Dans Android Studio 2.3, il est possible de supprimer toutes les ressources inutilisées.
Refactor -> Remove Unused Resources...
Dans les résultats, sélectionnez toutes les ressources de chaîne inutilisées.
Menu -> Rechercher -> Remplacer dans le chemin
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
En fait, Android Lint devrait faire un rapport sur les ressources inutilisées, mais vous pouvez aussi essayer avec this Nice plugin.
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. !!