Android Studio: Excluir archivos en la carpeta de compilación del resultado de búsqueda

6 minutos de lectura

avatar de usuario
Tar_Tw45

Tengo un proyecto de Android Studio en el que tengo varios módulos, cada uno de los cuales depende de un módulo compartido. Y digamos que este módulo compartido tiene una llamada de archivo xml muestra.xml

Cuando busco para abrir un archivo con Navegar -> Archivos… y escriba “sample.xml”, obtendré

  1. Compartir/src/main/res/values/sample.xml
  2. ModuleA/build/intermediates/exploded-arr/…/res/values/sample.xml
  3. ModuleB/build/intermediates/exploded-arr/…/res/values/sample.xml
  4. ModuleC/build/intermediates/exploded-arr/…/res/values/sample.xml
  5. ModuleD/build/intermediates/exploded-arr/…/res/values/sample.xml …

Dado que los archivos en la carpeta de compilación se generan y no debemos editarlos, no hay ninguna razón por la que quiera incluirlos en mi resultado de búsqueda. ¿Hay alguna forma en que pueda excluirlos?

  • Posible duplicado de Ignorar archivos R.java en resultados de búsqueda

    – Crandell WS

    2 de enero de 2017 a las 9:17

  • Posible duplicado de stackoverflow.com/questions/24743242/…

    – Crandell WS

    07/03/2017 a las 18:40

  • Posible duplicado de ¿Cómo hago para que Android Studio deje de devolver el código generado en los resultados de búsqueda?

    – Crandell WS

    07/03/2017 a las 18:40

  • @CrandellWS, el tema al que se refiere está hablando de “Buscar en la ruta”, mientras que el mío está hablando de “Navegar> Archivo…”. Con Buscar en ruta puede especificar un alcance personalizado y guardarlo, pero no puede hacerlo con “Navegar > ARCHIVO…”.

    – Tar_Tw45

    13 de marzo de 2017 a las 5:38

  • WTH, ¿por qué diablos Android Studio no tiene “marcar directorio como excluido” como casi todos los demás IDE de JetBrains?

    – ThiefMaster

    2 de abril de 2017 a las 12:12

avatar de usuario
3c71

En pocas palabras, y para excluir realmente las rutas de compilación de su búsqueda, debe seguir los puntos de respuesta 1 y 2 de Frank, luego, debido a que no hay un alcance adecuado que realmente excluya la carpeta de compilación, simplemente haga esto:

Dentro del cuadro de diálogo “Buscar en ruta” (CONTROL+CAMBIO+F):

  1. toque el … para configurar un alcance
  2. haga clic en el + botón, elija ámbito local
  3. dale un nombre a tu nuevo alcance
  4. ingresar !file:build//* en el patrón
  5. toque Aceptar y pruebe su nuevo visor

ingrese la descripción de la imagen aquí

Si además desea tener un alcance para un solo módulo, cree un alcance para su módulo (incluida recursivamente la ruta de su módulo), luego agregue esto al comienzo de su patrón:

!file:build//*&&

Por ejemplo, un alcance para 2 módulos:

!file:build//*&&file[MODULE1_DIRECTORY_NAME]:*/||file[MODULE2_DIRECTORY_NAME]:*/

Solo obtuve la respuesta completa leyendo la respuesta de Frank y la publicación n. ° 7 del problema informado aquí: http://code.google.com/p/android/issues/detail?id=61488

  • ¿Estás seguro de que esto responde a su pregunta? Te preguntó sobre el filtrado CTRL+MAYÚS+N, le diste la respuesta CTRL+MAYÚS+F. También necesito la solución Navigate > File. ¿Alguien sabe cómo hacerlo?

    – Tati Desbordamiento

    1 de febrero de 2017 a las 21:58


  • Al ejemplo de dos módulos le faltan paréntesis: debería ser !file:build//*&&(file[MODULE1_DIRECTORY_NAME]:*/||file[MODULE2_DIRECTORY_NAME]:*/)de lo contrario el build la subcarpeta de module2 no está excluida.

    – Pierre-Luc Paour

    10 de marzo de 2017 a las 9:30

  • La gente no está leyendo correctamente. Find in Path (y similares) son no lo mismo que Navegar -> Clase/Archivo/Símbolo, etc. El primero admite ámbitos, el último, misteriosamente, no.

    – Martín Marconcini

    1 de agosto de 2017 a las 21:27

  • Por alguna razón, esto todavía me da archivos intermedios y generados, aunque la carpeta de compilación es su padre. Esto parece deshacerse de todos los resultados no deseados: “!file:build//*&&!file:*intermediates*/&&!file:*generated*/”. Sin embargo, la pregunta original es sobre una búsqueda de nombre de archivo (no búsqueda de contenido de archivo), para la cual tampoco he encontrado una respuesta.

    – Vieja escuela4664

    16 de enero de 2018 a las 23:26

  • yo suelo !file:build//*&&!file:app//build//*&&!lib:*..* patrón para excluir las carpetas build y lib

    – Borzh

    8 de marzo de 2018 a las 15:01

avatar de usuario
martino

Android Studio -> Apariencia y comportamiento -> Alcances -> + -> agregar alcance -> local -> establecer un nombre personalizado y establecer un patrón

!file:*intermediates*/&&!file:*generated*/&&!file:R.java

ingrese la descripción de la imagen aquí

Puedes crear un Alcance personalizado que define los archivos establecidos que desea buscar y le permite excluir aquellos que no desea buscar.

  1. CONTROL+CAMBIO+F para presentar el Buscar en ruta diálogo.
  2. Por debajo Alcance Seleccione Disfraz
  3. Si uno de los Ámbitos que están presentes en la lista desplegable no restringe la búsqueda de archivos según sus necesidades, puede crear su propio Ámbito personalizado. Para hacer esto, haga clic en el ... botón.
  4. Luego haga clic en el + botón y seleccione Local
  5. En el panel de la derecha, puede incluir y excluir archivos individuales e incluir o excluir recursivamente todos los archivos debajo de una carpeta.

A continuación, puede utilizar su Ámbito personalizado para restringir los archivos que se buscan cuando lo hace. Buscar en ruta.

  • Parece un poco demasiado genérico para responder realmente a la pregunta.

    – 3c71

    30 de abril de 2015 a las 17:41

Tenía el mismo problema. Se encontró que estas carpetas de ‘compilación’ estaban marcadas como sourceFolder en el archivo .iml del módulo.

Eliminar todas esas entradas solucionó el problema

<sourceFolder url="file://$MODULE_DIR$/build/..." ..../>

Este problema parece estar solucionado en versiones posteriores de Android Studio, pero si vuelve a ocurrir o si tiene una configuración de carpeta especial:

Debe modificar la lista de exclusión a través de gradle con la ayuda de la complemento de ideas

Ejemplo:

apply plugin: 'idea'

idea.module {
    excludeDirs += file('build/')
}

Luego ejecuta la tarea ideaModule para regenerar el .iml archivo con la línea de exclusión descrita en la respuesta de Corwin

  • ¡Funciona genial! Quería excluir mi node_modules directorio desde la búsqueda de archivos, así que acabo de agregar excludeDirs += file('node_modules/'). ¡Gracias!

    – Josué Pinter

    12 de noviembre de 2017 a las 2:15

Para excluir todas las carpetas de compilación de todos los módulos, use este patrón:

!file:*build*/

Si desea excluir también todas las bibliotecas, simplemente use este patrón:

!file:*build*/&&!lib:*..*

Descripción detallada:

  1. En la ventana Buscar, haga clic en el Alcance pestaña, luego en botón de tres puntos:

ingrese la descripción de la imagen aquí

  1. Más botón -> Local -> Introducir nombre

ingrese la descripción de la imagen aquí

  1. Agrega el deseado patrón:

Ámbitos de búsqueda

  1. Guardar y disfrutar!

  • ¡Funciona genial! Quería excluir mi node_modules directorio desde la búsqueda de archivos, así que acabo de agregar excludeDirs += file('node_modules/'). ¡Gracias!

    – Josué Pinter

    12 de noviembre de 2017 a las 2:15

avatar de usuario
yoAlex5

Puede usar patrón de exclusión como

!file:build//*&&

[How to add a new pattern follow and skip tests pattern]
[Skip generated files pattern]

¿Ha sido útil esta solución?