Gibt es eine einfache Möglichkeit, unbenutzte Zeichenfolgen im Android-Projekt herauszufinden?

Lesezeit: 4 Minuten

Benutzer-Avatar
Benutzer556956

Ich habe ein riesiges Android-Projekt mit vielen deklarierten Zeichenfolgen strings.xml. Ich wollte unbenutzte Saiten entfernen strings.xml.

Gibt es eine einfache Möglichkeit, dies zu tun?

Benutzer-Avatar
Oded Breiner

An Android-Studio:

Speisekarte -> Analysieren -> Inspektion nach Namen ausführen -> Ungenutzte Ressourcen

Prüfen Dateimaske(n) Kontrollkästchen und setzen strings.xml im Textfeld.

  • Dann kannst du definieren Custom scopewählen Production classes -> app -> values um unbenutzte Saiten, Farben zu finden …

    – Jemshit Iskenderov

    3. November 2015 um 12:03 Uhr


  • Mit SDK Tools 26.0.2 findet dies meine nicht verwendeten Zeichenfolgen nicht, während “Verwendungen finden” keine Verwendung von ihnen anzeigt (und dies für die tatsächlich verwendeten).

    – Benutzer905686

    28. August 2017 um 8:27 Uhr

  • Übrigens, wenn eine Zeichenfolge tatsächlich verwendet wird (dynamisch im Code referenziert), können Sie Linter-Warnungen mit unterdrücken tools:ignore="UnusedResources"

    – jakub.g

    25. September 2017 um 16:49 Uhr


  • dieser funktioniert nicht wie erwartet. Ich habe versucht, unbenutzte Zeichenfolgen hinzuzufügen und zu inspizieren, aber es ist nicht in der Lage, sie zu identifizieren

    – chikka.anddev

    14. März 2018 um 12:46 Uhr

  • Das scheint kaputt zu sein, es dachte, ein paar meiner Saiten wären unbenutzt, aber ein schnelles “Find Usages” fand Verwendung. Vorsichtig sein.

    – szaske

    12. Februar 2020 um 17:15 Uhr

Benutzer-Avatar
Suragch

Hier ist eine andere Lösung, die ziemlich einfach ist. Gehen Sie im Menü von Android Studio zu

Umgestalten > Ungenutzte Ressourcen entfernen….

Geben Sie hier die Bildbeschreibung ein

Klicken Vorschau um zu sehen, was die ungenutzten Ressourcen sind, und sie selektiv zu entfernen.

  • Dadurch wurden viele Ressourcen entfernt, die tatsächlich verwendet wurden. Musste viele Sachen manuell wiederherstellen

    – stöfln

    16. Januar 2018 um 14:12 Uhr

  • @stoefln, wenn Sie auf Vorschau klicken, können Sie manuell auswählen, was gelöscht und was nicht gelöscht werden soll.

    – Suragch

    16. Januar 2018 um 15:32 Uhr

  • Achten Sie darauf, dass “Ungenutzte @id-Deklarationen auch löschen”. Es hat mir viele IDs gelöscht, die mein Code tatsächlich verwendet hat (Kotlin Android Extension Plugin – das ermöglicht die Wiederherstellung von Ansichten aus Aktivitäten, Fragmenten und Ansichten)

    – Dan Alboteanu

    15. Dezember 2018 um 13:02 Uhr

In meinem Fall hat “Run Inspection by Name” nicht funktioniert, obwohl ich “Ungenutzte Ressourcen entfernen” verwendet habe.

Lösung:

  1. Öffnen Sie strings.xml
  2. Sekundärer Klick
  3. Umgestalten –> Ungenutzte Ressourcen entfernen

Ich habe keine Ahnung, warum “Remove Unused Resources” in die eine Richtung funktioniert, aber nicht in die andere.

  • Sie können dies auch im Projekt-Explorer tun, das gewünschte Modul auswählen, dann mit der rechten Maustaste klicken und umgestalten> nicht verwendete Ressourcen entfernen, um alle Arten von Ressourcen wie nicht verwendete Drawables zu entfernen

    – FRL

    23. November 2016 um 18:19 Uhr

Mit ADT 16 können Sie es so einfach wie möglich machen. Aktualisieren Sie auf ADT 16 und verwenden Sie es Android Lint. Es ist wirklich ein erstaunliches Werkzeug. Es kann finden alle ungenutzte Ressourcen (nicht nur Strings) und vieles mehr. Von seiner offiziellen Seite:

Here are some examples of the types of errors that it looks for:

- Missing translations (and unused translations)
- Layout performance problems (all the issues the old layoutopt tool used to find, and more)
- Unused resources
- Inconsistent array sizes (when arrays are defined in multiple configurations)
- Accessibility and internationalization problems (hardcoded strings, missing contentDescription, etc)
- Icon problems (like missing densities, duplicate icons, wrong sizes, etc)
- Usability problems (like not specifying an input type on a text field)
- Manifest errors
and many more.

So habe ich es mit Android 3.3 gemacht.

Checken Sie alle nicht gespeicherten Änderungen in Ihr Repository ein.

  • Klicken Sie mit der rechten Maustaste auf das Modul Ihrer App -> Refactor -> Remove Unused Resources -> Preview
  • Reduzieren Sie in der Refactoring-Vorschau beide Ansichten („Zu löschende Elemente“ und „Unused Resource Declarations“).
  • Klicken Sie mit der rechten Maustaste auf „Zu löschende Elemente“ -> Ausschließen
  • Klicken Sie mit der rechten Maustaste auf „Nicht verwendete Ressourcendeklarationen“ -> Ausschließen
  • Erweitern Sie nun „Unused Resource Declarations“ und suchen Sie darunter Ihre App-spezifische strings.xml (es gäbe mehrere strings.xmls).
  • Klicken Sie mit der rechten Maustaste auf diese strings.xml -> Einschließen
  • Refactoring durchführen! Alle unbenutzten Strings aus der xml-Datei werden gelöscht!

Hinweis: Versuchen Sie, das Projekt zu erstellen. Wenn die Kompilierung fehlschlägt, wird höchstwahrscheinlich auf diese strings.xml von einigen Layout-/Menü-XMLs verwiesen, die selbst nicht verwendet werden. Diese Layout-XMLs können also auch manuell gelöscht werden!

Bauen und ausführen. Prüfen!

Benutzer-Avatar
AJ

Um string.xml zu überprüfen.

Es ist einfach (zumindest in meiner Version von Eclipse)

In Eclipse für Android (ich habe Version v22.6.2-1085508)

  • Rechtsklick auf den Projektnamen im “Paket-Explorer”
  • Wählen Sie “Android-Tools”.
  • Wählen Sie „Lint ausführen: Auf häufige Fehler prüfen“.

Wenn Sie jetzt strings.xml öffnen, werden Sie sehen, dass die unbenutzte Zeichenfolge hervorgehoben ist.

Sie können andere potenzielle Probleme beheben.

Benutzer-Avatar
Glücklicher Singh

In Android Studio Press

Strg+Alt+Umschalt+i

Wählen Sie -> Nicht verwendete Ressourcen
Es zeigt Ihnen nicht verwendete Zeichenfolgen und Symbole.

Danke Viel Spaß beim Codieren 🙂

1345830cookie-checkGibt es eine einfache Möglichkeit, unbenutzte Zeichenfolgen im Android-Projekt herauszufinden?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy