¿Cómo configuramos Android Studio para ejecutar su pelusa en cada compilación?

Érase una vez, sobre todo en Eclipse-tierra, Lint funcionaría en cada construcción, y así que si usted falló los controles de Lint, usted descubriría inmediatamente. Con Android Studio (probado en 1.3), Lint no se ejecuta por defecto en una compilación. Los recién llegados podrían cometer errores que Lint vería, pero como Lint no corre, los recién llegados no se enteran de ellos.

(IOW, si una prueba Lint no se ejecutó en un bosque, ¿existe realmente una prueba Lint?)

Los comentarios en esta entrada del blog muestran cómo un poco sorta obtener Lint para ejecutar como parte de una compilación:

  • Editar la configuración del proyecto
  • En la pestaña General de la configuración, desplácese hacia abajo y abra el panel "Antes del lanzamiento"
  • En ese panel, añada un paso a "Run Gradle Task" llamado lint para su módulo

Sin embargo, esto ejecuta Lint de línea de comandos, lo que resulta en informes escritos en XML y HTML en su disco duro. Eso funciona, pero sería más limpio tener Android Studio ejecutar su in-IDE Lint cheques, por lo que los resultados aparecen en un panel IDE.

¿Hay una manera de configurar una construcción de proyecto para realizar las comprobaciones de Lint en IDE?

Puntos de bonificación si se puede configurar para ejecutar sólo Lint, no el análisis completo realizado por Analyze> Inspect Code. Mientras que el análisis completo es de vez en cuando útil, Lint es lo suficientemente lento como es, y mucho menos el dudoso útil otro análisis realizado por Android Studio (por ejemplo, corrector ortográfico).

Aunque configurar esto no sería un gran plan para todos los proyectos (los escaneos de Lint son lentos), para los recién llegados a Android, podría ser un movimiento apropiado.

Lint debería estar ejecutándose en Android Studio a menos que lo haya configurado para que se desconecte a través de lintOptions en su archivo build.gradle .

Aquí está de la documentación encontrada en http://developer.android.com/tools/debugging/improving-w-lint.html#studio

En Android Studio, las inspecciones de pelusa y IDE configuradas se ejecutan automáticamente cada vez que crea su aplicación. Las inspecciones IDE se configuran junto con las comprobaciones de pelusa para ejecutar las inspecciones de código IntelliJ para optimizar la revisión de código.

Nota: Para ver y modificar los niveles de gravedad de la inspección, utilice el menú Archivo> Configuración> Configuración del proyecto para abrir la página Configuración de la inspección con una lista de las inspecciones admitidas.

Con Android Studio, también puede ejecutar inspecciones de pelusa para una variante de construcción específica o para todas las variantes de construcción del archivo build.gradle. Agregue la propiedad lintOptions a la configuración de android en el archivo de compilación. Este fragmento de código de un archivo de compilación Gradle muestra cómo establecer la opción quiet en true y la opción abortOnError en false.

 android { lintOptions { // set to true to turn off analysis progress reporting by lint quiet true // if true, stop the gradle build if errors are found abortOnError false // if true, only report errors ignoreWarnings true } ... } 

Para ejecutar manualmente las inspecciones en Android Studio, en la aplicación o en el menú del botón derecho del ratón, elija Analizar> Inspect Code . Aparecerá el cuadro de diálogo Especifique el alcance de las inspecciones para poder especificar el alcance y el perfil de inspección deseados.

Aquí hay otras opciones de pelusa que puede agregar a su linkOptions en su archivo gradle build.gradle: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Lint-support

Aquí hay más información sobre la pelusa de android: http://developer.android.com/tools/help/lint.html

Se utiliza para ser que usted podría agregar gradle tareas después de ciertas acciones en el estudio de android.

  • Abra la pestaña Gradle en el lado derecho de la pantalla
  • Seleccione su tarea

Ficha de Gradient de Android Studio

  • Haga clic derecho en la tarea
  • Elige tu acción de ejecución

Acción de ejecución de Android Studio

Esto debe ejecutar la tarea cuando se ha programado para su ejecución.

Crear perfil de inspección para Android Lint

  1. Vaya a Archivo -> Configuración -> Editor / Inspección
  2. Seleccione Administrar -> Copiar
  3. Darle el nombre de "perfil de perfusión de Android" y presionar Entrar
  4. Deja marcada sólo las reglas de Android Lint en esta pestaña

Perfil de Lint de Android

Ahora sólo puede ejecutar la inspección con las reglas de Lint de Android mediante Analyze-> Inspect Code … seleccionando "Android Lint Profile".

En el siguiente paso, vamos a grabar Macro (Editar-> Macros-> Iniciar Grabación de Macro) con los siguientes pasos.

  1. Analizar-> Inspect Code …
  2. Seleccione "Android Lint Profile"
  3. Presione Enter (es importante utilizar el teclado porque la grabadora de Macro no captura los clics del ratón en esta ventana)
  4. Haga clic en "Ejecutar Configuración Seleccionada" (botón de reproducción verde)

Detener la grabación de macro y darle el nombre "Lint and Run".

Lo último que debe hacerse es asignar "Mayús + F10" a nuestra macro. Vaya a Archivo-> Configuración …-> Mapa de teclas. Encuentre nuestra macro y cambie el atajo.

Macro keymapping

Ahora lint se ejecutará antes de cada construcción cuando presione Mayús + F10 y los resultados serán en el panel de Android Studio.

Pero esta solución tiene un gran inconveniente. Si ejecuta la compilación haciendo clic en el botón Ejecutar, el análisis de pelusa no se ejecutará.

Puede ser que esta información sea provechosa y alguien proporcionará la mejor solución que la utiliza.

Una solución posible (pero difícil de implementar) es escribir un complemento IDEA para hacer esto. Puede evitar esto descargando el complemento de abajo del repositorio o el código de github. El fragmento de código siguiente ejecutará las acciones 'compilar' y 'inspeccionar código', secuencialmente.

 public class BuildAndLint extends AnAction { public void actionPerformed(AnActionEvent e) { String[] actions = {"CompileProject", "InspectCode"}; for(String action: actions) { AnAction anAction = ActionManager.getInstance().getAction(action); DataContext context = e.getDataContext(); AnActionEvent anActionEvent = new AnActionEvent(null, context, "", anAction.getTemplatePresentation(), ActionManager.getInstance(), 0); anAction.actionPerformed(anActionEvent); } } } 

El código ha sido probado y funciona en Android Studio 1.3. Se abrirá una ventana para seleccionar qué inspeccionar, en lugar de hacer todo el asunto.

Campo de golf

Código fuente en github

Construido y Lint Jar

  • Fusión de manifiesto falló al intentar agregar mi propio logotipo a la aplicación Android - Android Studio
  • No se puede crear Debug Bridge No se puede detectar la versión de adb. Error de sintaxis: ")" Actualización de Platform-tools 23.0.1 a 23.1.0 Linux-32 bits causa problema
  • La ejecución instantánea no funciona debido a "proceso múltiple"
  • Android appcompat v7: 23
  • Agregue el proyecto android de ZXing como biblioteca en android studio
  • El uso de la anotación de hilo no se inspecciona como se esperaba
  • Cómo agregar epublib a Android Studio y ejecutarlo
  • Android Studio Wear App Error - No se puede abrir PNG
  • Dudas con nombres de sabores y paquetes
  • ¿Cómo puedo agregar un JAR en mi proyecto gradle?
  • Android Studio no muestra los registros según el nombre del paquete
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.