Comment afficher l'arborescence des dépendances dans Android Studio?


Réponses:


200

L'image de la question ne montre pas vraiment un arbre, juste une liste plate de tout ce qui est compilé dans l'application.

Utilisez-vous Gradle?

Si tel est le cas, vous pouvez vraiment voir l '«arbre» ​​en exécutant une commande Gradle

Documentation Android : afficher l'arborescence des dépendances

GUI

  1. Sélectionnez Affichage > Fenêtres d'outils > Gradle (ou cliquez sur l'icône Gradle dans la barre des fenêtres d'outils).
  2. Développez AppName > Tâches > Android et double-cliquez androidDependencies. Une fois que Gradle a exécuté la tâche, la fenêtre Exécuter doit s'ouvrir pour afficher la sortie.

CLI

(produit une liste arborescente)

./gradlew app:dependencies

et / ou

(produit une liste plate)

./gradlew app:androidDependencies

appest le nom de votre module

Et vous obtenez quelque chose comme ça

+--- MyApp:mylibrary:unspecified
|    \--- com.android.support:appcompat-v7:25.3.1
|         +--- com.android.support:animated-vector-drawable:25.3.1
|         |    \--- com.android.support:support-vector-drawable:25.3.1
|         |         \--- com.android.support:support-v4:25.3.1
|         |              \--- LOCAL: internal_impl-25.3.1.jar
|         +--- com.android.support:support-v4:25.3.1
|         |    \--- LOCAL: internal_impl-25.3.1.jar
|         \--- com.android.support:support-vector-drawable:25.3.1
|              \--- com.android.support:support-v4:25.3.1
|                   \--- LOCAL: internal_impl-25.3.1.jar
\--- com.android.support:appcompat-v7:25.3.1
     +--- com.android.support:animated-vector-drawable:25.3.1
     |    \--- com.android.support:support-vector-drawable:25.3.1
     |         \--- com.android.support:support-v4:25.3.1
     |              \--- LOCAL: internal_impl-25.3.1.jar
     +--- com.android.support:support-v4:25.3.1
     |    \--- LOCAL: internal_impl-25.3.1.jar
     \--- com.android.support:support-vector-drawable:25.3.1
          \--- com.android.support:support-v4:25.3.1
               \--- LOCAL: internal_impl-25.3.1.jar

Remarque : Si vous exécutez ls(ou dirsous Windows) dans ce dossier et que vous ne voyez pas gradlew(ou gradlew.bat), vous êtes dans le mauvais dossier.


1
Merci, m'a beaucoup aidé à traquer certaines dépendances transitoires.
Mark Keen

3
Ce n'est pas ce que vous montrez dans cette réponse, c'est juste une liste textuelle non interactive de dépendances
Tristan

6
Cela peut être une version plus récente de Gradle, mais l'arborescence de dépendances semble être affichée avec ./gradlew appName:dependencies. Dans Android Studio, il peut être trouvé sous appName > Tasks > help > dependencies.
omahena

3
@ cricket_007 Je suis d'accord avec vous que les deux tâches sont différentes. Et je me suis peut-être trompé ... Mais je n'ai pas trouvé de moyen d'afficher un arbre de dépendances avec Gradle 4.6 et la androidDependenciestâche comme celle de votre réponse. Les résultats n'étaient qu'une liste plate comme le résultat final d'une recherche de dépendances Gradle. Une idée pourquoi et comment obtenir un arbre comme dans votre réponse?
omahena le

1
@omahena Eh bien, j'ai copié directement à partir de la documentation. Ma réponse disaitapp:dependencies
OneCricketeer

22

Sur le côté droit, ouvrez l'onglet Gradle> cliquez sur l'icône Gradle (exécuter la tâche gradle), dans la boîte de dialogue contextuelle, entrez:

app:dependencies

dans le champ de la ligne de commande> ok


1
Cela a fonctionné pour moi une fois que j'ai enlevé app:et juste exécuté dependencies. Cela donne une sortie plus utile que la méthode de la réponse de norbDEV car elle montre une arborescence de dépendances. Peut-être la même sortie que ./gradlew dependenciesmais sans la nécessité d'installer un JDK.
jk7

1
@ jk7 appest le module par défaut pour les projets Android Studio. Si vous n'avez pas de modules ou si vous souhaitez voir les dépendances pour tous les modules, oui, gradle dependenciesfonctionne également
OneCricketeer

17

Android Studio 3. +

  • Ouvrez le panneau Gradle
  • Cliquez sur l' icône d'éléphant , qui a l'info-bulle "Exécuter la tâche Gradle"

Capture d'écran du panneau Gradle + icône de l'éléphant

  • Sélectionnez le projet de gradle d' application
  • Dans la ligne de commande, collez :dependencies
  • Cliquez sur OK

Capture d'écran: Exécuter la tâche Gradle - Fenêtre

Dans le panneau Exécuter, vous trouverez l'arborescence des dépendances.


Une autre méthode:

  • Ouvrez le panneau Gradle

  • Trouvez le suffixe «(root)» et ouvrez (nom du dossier de l'application)

  • Ouvrez le nœud Tâches

  • Ouvrez le nœud Android

  • Double-cliquez sur "androidDependencies"

Dans le panneau Exécuter, vous trouverez la liste des dépendances

Avant une construction normale, revenez à la configuration de construction normale (à côté du marteau)


Un autre outil utile:

Comment trouver quelle dépendance est mise à jour: https://github.com/ben-manes/gradle-versions-plugin

Usage

  • Ajoutez ceci au niveau du projet build.gradle

    apply plugin: "com.github.ben-manes.versions"
    
    buildscript {
      repositories {
        jcenter()    
      }
    
      dependencies {
        classpath "com.github.ben-manes:gradle-versions-plugin:0.20.0"
      }
    }
    
  • Synchroniser maintenant

  • Ouvrez le panneau Gradle
  • Cliquez sur l' icône d'éléphant
  • Sélectionnez le projet racine
  • Dans la ligne de commande, collez :dependencyUpdates
  • Cliquez sur OK
  • Attends un peu

Dans le panneau Exécuter, vous trouverez le résultat.


Cela crée une liste plate de dépendances plutôt qu'un arbre, donc pas aussi utile si vous avez besoin de déterminer quelle bibliothèque utilise une dépendance particulière. +1 pour le conseil "revenir à la configuration de construction normale".
jk7

16

Finalement, je l'ai compris. Ce que je fais est de sélectionner Projet dans le menu Projet (voir l'image ci-dessous).

entrez la description de l'image ici


12
Ce n'est en aucun cas un arbre de dépendances . Les arbres de dépendances sont utilisés par exemple pour trouver des versions en conflit lorsque la bibliothèque A utilise la bibliothèque B version 1 tandis que la bibliothèque C utilise la bibliothèque B version 2. Dans l'état actuel de la question, cette réponse n'est pas correcte. La question doit être mise à jour pour demander une liste des bibliothèques utilisées, ou la réponse de cricket_007 doit être celle acceptée.
JHH

6

Android Studio 3.4

Inspectez et visualisez chaque dépendance dans le graphique de dépendances de votre projet, tel que résolu par Gradle lors de la synchronisation du projet, en suivant ces étapes:

  1. Android Studio -> Fichier -> Structure du projet (boîte de dialogue)
  2. Dans le volet gauche de la fenêtre "Structure du projet", sélectionnez Dépendances .
  3. Dans le volet Modules , sélectionnez un module pour lequel vous souhaitez inspecter les dépendances résolues.

Structure du projet

  1. Pour Android Studio 3.6 et supérieur: sur le côté droit de la fenêtre «Structure du projet», regardez le volet Dépendances résolues . Un exemple est montré ci-dessous, où vous pouvez cliquer sur les flèches Développer pour naviguer dans chaque sous-dépendance. Cependant, il n'autorise pas la recherche de texte, comme le fait la sortie de la console.

Volet Dépendances résolues

Apprendre encore plus.


5

la commande de terminal pour voir toutes les dépendances est

 ./gradlew -q dependencies app:dependencies --configuration implementation

3

Cliquez sur l' onglet Gradle et accédez à AppName > Tâches> aide> dépendances

Dépendances du studio Android

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.