Android Studio: exclure les fichiers du dossier de construction des résultats de la recherche

J’ai un projet Android Studio dans lequel j’ai plusieurs modules, chacun de ces modules dépendant d’un module de partage. Et disons que ce module de partage a un fichier XML appelé call.xml

Lorsque je recherche pour ouvrir un fichier avec Navigate -> Files … et tapez “sample.xml”, je vais

  1. Partager / 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 …

Comme les fichiers du dossier de construction sont générés et que nous ne devrions pas les modifier, il n’y a aucune raison pour que je veuille les inclure dans mon résultat de recherche. Y a-t-il de toute façon je peux les exclure?

Pour le dire simplement, et pour exclure réellement les chemins de construction de votre recherche, vous devez suivre les points de réponse 1 et 2 de Frank.

À partir de la boîte de dialog Rechercher dans le chemin,

1) Tap the ... to configure a scope 2) Click the + and give your new scope a name 3) Enter "!file:build//*" in the pattern without the double quotes 4) Tap ok and use your new scope 

Si vous souhaitez en outre avoir une scope pour un seul module, créez une scope pour votre module (y compris récursivement le chemin de votre module), puis ajoutez ceci au début de votre modèle:

 !file:build//*&& 

Par exemple, une scope pour 2 modules:

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

Seule la réponse complète à la lecture de la réponse de Frank et du post n ° 7 du problème signalé ici: http://code.google.com/p/android/issues/detail?id=61488

Vous pouvez créer une étendue personnalisée qui définit les fichiers que vous souhaitez rechercher et vous permet d’exclure ceux que vous ne souhaitez pas rechercher.

  1. CTRL + MAJ + F pour présenter la boîte de dialog Rechercher dans le chemin .
  2. Sous Scope, sélectionnez Custom
  3. Si l’un des scopes présents dans la liste déroulante ne limite pas la recherche de fichiers en fonction de vos besoins, vous pouvez créer votre propre étendue personnalisée. Pour ce faire, cliquez sur le bouton ...
  4. Cliquez ensuite sur le bouton + et sélectionnez Local
  5. Dans le volet de droite, vous pouvez inclure et exclure des fichiers individuels et inclure ou exclure récursivement tous les fichiers sous un dossier.

Vous pouvez ensuite utiliser votre étendue personnalisée pour contraindre les fichiers recherchés lorsque vous recherchez le chemin .

Eu le même problème. Trouvé que ces dossiers «build» ont été marqués comme sourceFolder dans le fichier .iml du module.

Supprimer toutes ces entrées corrige le problème

  

Ce problème semble être résolu dans les versions ultérieures d’Android Studio, mais devrait-il se reproduire ou vous avez une configuration de dossier spéciale:

Vous devez modifier la liste d’exclusion via gradle à l’aide du plugin idée

Exemple:

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

Ensuite, exécutez la tâche ideaModule pour régénérer le fichier .iml avec la ligne d’exclusion décrite dans la réponse de Corwin.