Tengo un gran proyecto de Android con muchas cadenas declaradas strings.xml. Quería eliminar cadenas no utilizadas strings.xml.
¿Hay alguna manera fácil de hacerlo?
En Android Studio :
Menú -> Analizar -> Ejecutar inspección por nombre -> Recursos no utilizados
Marque la casilla de verificación Máscaras de archivo y colóquelas strings.xmlen el campo de texto.
Custom scope, eligiendoProduction classes->app->valuespara encontrar cadenas no utilizadas, colores ...tools:ignore="UnusedResources"Aquí hay otra solución que es bastante fácil. En el menú de Android Studio, vaya a
Refactor> Eliminar los recursos no utilizados ... .
Haga clic en Vista previa para ver cuáles son los recursos no utilizados y eliminarlos selectivamente.
fuente
En mi caso, "Ejecutar inspección por nombre" no funcionó, a pesar de que estaba usando "Eliminar recursos no utilizados".
Solución:
No tengo idea de por qué "Eliminar recursos no utilizados" funciona de una manera pero no de la otra.
fuente
Con ADT 16 puedes hacerlo lo más simple posible. Actualice a ADT 16 y use Android Lint . Es una herramienta realmente asombrosa. Puede encontrar todos los recursos no utilizados (no solo cadenas) y muchos más. Desde su sitio oficial:
fuente
Warning: The resource R.string.... appears to be unused [UnusedResources] [lint] <string name="...">some text</string>Para verificar string.xml.
Es fácil (al menos en mi versión de Eclipse)
En Eclipse para Android (tengo la versión v22.6.2-1085508)
Ahora, cuando abra strings.xml, verá que la cadena no utilizada está resaltada.
Puede solucionar otros problemas potenciales.
fuente
En Android Studio Press
Ctlr + Alt + Mayús + i
Seleccione -> Recursos no utilizados
Le muestra cadenas e iconos no utilizados.
Gracias feliz codificación :)
fuente
Así es como lo hice con Android 3.3.
Registre cualquier cambio no guardado en su repositorio.
Nota: intente construir el proyecto. Si la compilación falla, lo más probable es que estos strings.xml se refieran desde algún diseño / menú xmls, que no se utilizan. ¡Así que esos xmls de diseño también se pueden eliminar manualmente!
Construye y corre. ¡Prueba!
fuente
Ejecute este script desde la raíz de su proyecto.
para el archivo de recursos en `find res / values / *. xml`; hacer para stringname en `grep '. * / \ 1 / g' '; hacer 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 [$ cuenta1 -eq 0 -a $ cuenta2 -eq 0 -a $ cuenta3 -eq 0 -a $ cuenta4 -eq 0 -a $ cuenta5 -eq 0]; luego echo $ resourcefile: $ stringname fi hecho hecho para resourcename en `find res / drawable * -type f -name '*. ???' '; hacer 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 [$ cuenta1 -eq 0 -a $ cuenta2 -eq 0 -a $ cuenta3 -eq 0 -a $ cuenta4 -eq 0 -a $ cuenta5 -eq 0]; luego echo $ resourcename fi hecho para resourcename en `find res / layout / *. xml`; hacer resource = `echo $ resourcename | xargs basename | sed "s / ^ \ (. * \) \ .... $ / \ 1 / g" ` count1 = `grep -rc" R \ .layout \. $ {resource} "src | egrep -v ': 0 $' | wc -l` si [$ cuenta1 -eq 0]; luego echo $ resourcename fi hechoMe da este tipo de salida:
fuente
Solo para traducción faltante:
Con InteliJ, haga clic en la barra del panel de su InteliJ: "Analizar"> "Ejecutar inspección por nombre"> Escriba: Traducción incompleta
fuente