Ich habe ein riesiges Android-Projekt mit vielen Zeichenfolgen, die in deklariert sind strings.xml. Ich wollte nicht verwendete Zeichenfolgen entfernen strings.xml.
Gibt es eine einfache Möglichkeit, dies zu tun?
Ich habe ein riesiges Android-Projekt mit vielen Zeichenfolgen, die in deklariert sind strings.xml. Ich wollte nicht verwendete Zeichenfolgen entfernen strings.xml.
Gibt es eine einfache Möglichkeit, dies zu tun?
Antworten:
Auf Android Studio :
Menü -> Analysieren -> Inspektion nach Namen ausführen -> Nicht verwendete Ressourcen
Aktivieren Sie das Kontrollkästchen Dateimaske (n) und geben Sie es strings.xmlin das Textfeld ein.
tools:ignore="UnusedResources"
Hier ist eine andere Lösung, die ziemlich einfach ist. Gehen Sie im Android Studio-Menü zu
Umgestalten> Entfernen von nicht verwendeten Ressourcen ... .
Klicken Sie auf Vorschau , um die nicht verwendeten Ressourcen anzuzeigen und sie selektiv zu entfernen.
In meinem Fall hat "Inspektion nach Namen ausführen" nicht funktioniert, obwohl ich "Nicht verwendete Ressourcen entfernen" verwendet habe.
Lösung:
Ich habe keine Ahnung, warum "Nicht verwendete Ressourcen entfernen" auf die eine, aber nicht auf die andere Weise funktioniert.
Mit ADT 16 können Sie dies so einfach wie möglich tun. Aktualisieren Sie auf ADT 16 und verwenden Sie Android Lint . Es ist wirklich ein erstaunliches Werkzeug. Es kann alle nicht verwendeten Ressourcen (nicht nur Zeichenfolgen) und viele mehr finden. 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.
Warning: The resource R.string.... appears to be unused [UnusedResources] [lint] <string name="...">some text</string>
So überprüfen Sie string.xml.
Es ist einfach (zumindest in meiner Version von Eclipse)
In Eclipse für Android (ich habe Version v22.6.2-1085508)
Wenn Sie nun strings.xml öffnen, sehen Sie, dass nicht verwendete Zeichenfolgen hervorgehoben werden.
Sie können andere potenzielle Probleme beheben.
In Android Studio Drücken Sie
Strg + Alt + Umschalt + i
Wählen Sie -> Nicht verwendete Ressourcen.
Hier werden nicht verwendete nicht verwendete Zeichenfolgen und Symbole angezeigt.
Danke Happy Coding :)
So habe ich es mit Android 3.3 gemacht.
Checken Sie alle nicht gespeicherten Änderungen in Ihrem Repository ein.
Hinweis: Versuchen Sie, das Projekt zu erstellen. Wenn die Kompilierung fehlschlägt, wird diese string.xml höchstwahrscheinlich von einigen Layout- / Menü-xmls referenziert, die selbst nicht verwendet werden. So können diese Layout-XMLs auch manuell gelöscht werden!
Bauen und ausführen. Prüfung!
Führen Sie dieses Skript im Stammverzeichnis Ihres Projekts aus.
für Ressourcendatei in `find res / values / *. xml`; machen
für Stringname in `grep '. * / \ 1 / g'`; machen
count1 = `grep -rc" R.string. $ {stringname} "src | egrep -v ': 0 $' | wc -l`
count2 = `grep -rc" @string / $ {stringname} "res / layout | egrep -v ': 0 $' | wc -l`
count3 = `grep -rc" @string / $ {stringname} "res / menu | egrep -v ': 0 $' | wc -l`
count4 = `grep -rc" @string / $ {stringname} "AndroidManifest.xml | egrep -v '^ 0 $' | wc -l`
count5 = `grep -rc" @string / $ {stringname} "res / xml | egrep -v ': 0 $' | wc -l`
if [$ count1 -eq 0 -a $ count2 -eq 0 -a $ count3 -eq 0 -a $ count4 -eq 0 -a $ count5 -eq 0]; dann
echo $ resourcefile: $ stringname
fi
getan
getan
für Ressourcennamen in `find res / drawable * -type f -name '*. ???'`; machen
resource = `echo $ resourcename | xargs basename | sed "s / ^ \ (. * \) \ .... $ / \ 1 / g" `
count1 = `grep -rc" R \ .drawable \. $ {resource} "src | egrep -v ': 0 $' | wc -l`
count2 = `grep -rc" @drawable / $ {resource} "res / layout | egrep -v ': 0 $' | wc -l`
count3 = `grep -rc" @drawable / $ {resource} "res / drawable * / *. xml | egrep -v ': 0 $' | wc -l`
count4 = `grep -rc" @drawable / $ {resource} "res / menu | egrep -v ': 0 $' | wc -l`
count5 = `grep -rc" @drawable / $ {resource} "AndroidManifest.xml | egrep -v '^ 0 $' | wc -l`
if [$ count1 -eq 0 -a $ count2 -eq 0 -a $ count3 -eq 0 -a $ count4 -eq 0 -a $ count5 -eq 0]; dann
echo $ resourcename
fi
getan
für den Ressourcennamen in `find res / layout / *. xml`; machen
resource = `echo $ resourcename | xargs basename | sed "s / ^ \ (. * \) \ .... $ / \ 1 / g" `
count1 = `grep -rc" R \ .layout \. $ {resource} "src | egrep -v ': 0 $' | wc -l`
if [$ count1 -eq 0]; dann
echo $ resourcename
fi
getan
Es gibt mir diese Art von Ausgabe:
res / values / activity_strings.xml: activity_more res / values / activity_strings.xml: activity_as_reply_to res / values / db_strings.xml: sql_backlog_count res / values / db_strings.xml: sql_backlog_update_last_resend ...
Custom scope, wählen SieProduction classes->app->values, um nicht verwendete Zeichenfolgen, Farben zu finden ...