¿Cómo muestro el árbol de dependencias en Android Studio?

Respuestas:

200

La imagen de la pregunta no muestra realmente un árbol, solo una lista plana de todo lo compilado en la aplicación.

¿Estás usando Gradle?

Si es así, realmente puede ver el "árbol" ejecutando un comando de Gradle

Documentación de Android : ver el árbol de dependencias

GUI

  1. Seleccione Ver > Ventanas de herramientas > Gradle (o haga clic en el icono de Gradle en la barra de ventanas de herramientas).
  2. Expanda AppName > Tareas > Android y haga doble clic androidDependencies. Después de que Gradle ejecute la tarea, la ventana Ejecutar debería abrirse para mostrar el resultado.

CLI

(produce una lista en forma de árbol)

./gradlew app:dependencies

y / o

(produce una lista plana)

./gradlew app:androidDependencies

¿Dónde appestá el nombre de su módulo?

Y obtienes algo así

+--- 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

Nota : Si ejecuta ls(o diren Windows) en esa carpeta y no ve gradlew(o gradlew.bat), está en la carpeta incorrecta.

OneCricketeer
fuente
1
Gracias, me ayudó mucho a rastrear algunas dependencias transitorias.
Mark Keen
3
Sin embargo, no es lo que muestra en esta respuesta, es solo una lista de texto no interactiva de dependencias
Tristan
6
Esto puede ser una versión de Gradle más nueva, pero el árbol de dependencias parece mostrarse con ./gradlew appName:dependencies. En Android Studio se puede encontrar en appName > Tasks > help > dependencies.
omahena
3
@ cricket_007 Estoy de acuerdo contigo en que las dos tareas son diferentes. Y puede que lo esté sosteniendo mal ... Pero no pude encontrar una manera de mostrar un árbol de dependencia con Gradle 4.6 y la androidDependenciestarea como la de su respuesta. Los resultados fueron solo una lista plana como el resultado final de una búsqueda de dependencias de Gradle. ¿Alguna idea de por qué y cómo obtener un árbol como en su respuesta?
omahena
1
@omahena Bueno, copié directamente de la documentación. Mi respuesta solía decirapp:dependencies
OneCricketeer
22

En el lado derecho, abra la pestaña de Gradle> haga clic en el icono de Gradle (ejecutar la tarea de Gradle), en el cuadro de diálogo emergente ingrese:

app:dependencies

en el campo de la línea de comando> ok

JimmyFlash
fuente
1
Esto funcionó para mí una vez que lo quité app:y lo ejecuté dependencies. Esto da un resultado más útil que el método en la respuesta de norbDEV, ya que muestra un árbol de dependencia. Posiblemente la misma salida que ./gradlew dependenciespero sin el requisito de instalar un JDK.
jk7
1
@ jk7 appes el módulo predeterminado para proyectos de Android Studio. Si no tiene módulos, o desea ver dependencias para todos los módulos, sí, gradle dependenciestambién funciona
OneCricketeer
17

Android Studio 3. +

  • Abre el panel de Gradle
  • Haga clic en el icono de elefante , que tiene la información sobre herramientas "Ejecutar tarea de Gradle"

Captura de pantalla del panel Gradle + icono de elefante

  • Seleccione el proyecto de gradle de la aplicación
  • En la línea de comando pegar :dependencies
  • Haga clic en Aceptar

Captura de pantalla: Ejecutar tarea de Gradle - Ventana

En el panel Ejecutar encontrará el árbol de dependencias.


Otro método:

  • Abre el panel de Gradle

  • Busque el sufijo "(raíz)" y abra (nombre de la carpeta de la aplicación)

  • Abra el nodo Tareas

  • Abra el nodo de Android

  • Haga doble clic en "androidDependencies"

En el panel Ejecutar encontrará la lista de dependencias

Antes de una compilación normal, vuelva a la configuración de compilación normal (junto al martillo)


Otra herramienta útil:

Cómo encontrar qué dependencia está actualizada: https://github.com/ben-manes/gradle-versions-plugin

Uso

  • Agregue esto al nivel de proyecto build.gradle

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

  • Abre el panel de Gradle
  • Haga clic en el icono de elefante
  • Seleccione el proyecto raíz
  • En la línea de comando pegar :dependencyUpdates
  • Haga clic en Aceptar
  • Espera un poco

En el panel Ejecutar encontrarás el resultado.

norbDEV
fuente
Esto crea una lista plana de dependencias en lugar de un árbol, por lo que no es tan útil si necesita averiguar qué biblioteca está usando una dependencia en particular. +1 para la sugerencia de "volver a la configuración de construcción normal".
jk7
16

Finalmente, lo descubrí. Lo que hago es seleccionar Proyecto en el menú Proyecto (vea la imagen a continuación).

ingrese la descripción de la imagen aquí

fruqi
fuente
12
Esto no es de ninguna manera un árbol de dependencias . Los árboles de dependencia se usan, por ejemplo, para encontrar versiones en conflicto cuando la biblioteca A usa la biblioteca B versión 1 mientras que la biblioteca C usa la biblioteca B versión 2. Tal como está la pregunta, esta respuesta no es correcta. La pregunta debe actualizarse para solicitar una lista de bibliotecas utilizadas, o la respuesta de cricket_007 debe ser la aceptada.
JHH
6

Android Studio 3.4

Inspeccione y visualice cada dependencia en el gráfico de dependencia de su proyecto, como lo resolvió Gradle durante la sincronización del proyecto, siguiendo estos pasos:

  1. Android Studio -> Archivo -> Estructura del proyecto (diálogo)
  2. En el panel izquierdo de la ventana "Estructura del proyecto", seleccione Dependencias .
  3. En el panel Módulos , seleccione un módulo para el que le gustaría inspeccionar las dependencias resueltas.

Estructura del proyecto

  1. Para Android Studio 3.6 y superior: en el lado derecho de la ventana "Estructura del proyecto", mira el panel Dependencias resueltas . A continuación se muestra un ejemplo, donde puede hacer clic en las flechas Expandir para navegar por cada subdependencia. Sin embargo, no permite la búsqueda de texto, como lo hace la salida de la consola.

Panel de dependencias resueltas

Aprende más.

Anor
fuente
5

El comando de terminal para ver la lista de todas las dependencias es

 ./gradlew -q dependencies app:dependencies --configuration implementation
vikas kumar
fuente
3

Haga clic en la pestaña Gradle y vaya a AppName > Tareas> ayuda> dependencias

Dependencias de Android Studio

Girando
fuente