Wie zeige ich den Abhängigkeitsbaum in Android Studio an?

Antworten:

192

Das Bild in der Frage zeigt nicht wirklich einen Baum, sondern nur eine flache Liste von allem, was in der App kompiliert wurde.

Verwenden Sie Gradle?

In diesem Fall können Sie den "Baum" wirklich sehen, indem Sie einen Gradle-Befehl ausführen

Android-Dokumentation : Zeigen Sie den Abhängigkeitsbaum an

GUI

  1. Wählen Sie Ansicht > Werkzeugfenster > Gradle (oder klicken Sie in der Werkzeugfensterleiste auf das Gradle-Symbol).
  2. Erweitern Sie AppName > Aufgaben > Android und doppelklicken Sie androidDependencies. Nachdem Gradle die Aufgabe ausgeführt hat, sollte das Fenster Ausführen geöffnet werden, um die Ausgabe anzuzeigen.

CLI

(erzeugt eine baumartige Liste)

./gradlew app:dependencies

und / oder

(erzeugt eine flache Liste)

./gradlew app:androidDependencies

Wo appist der Name Ihres Moduls?

Und du bekommst so etwas

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

Hinweis : Wenn Sie in diesem Ordner ls(oder dirunter Windows) ausgeführt werden und nicht sehen gradlew(oder gradlew.bat), befinden Sie sich im falschen Ordner.

OneCricketeer
quelle
1
Vielen Dank, hat mir sehr geholfen, einige vorübergehende Abhängigkeiten aufzuspüren.
Mark Keen
2
Es ist jedoch nicht das, was Sie in dieser Antwort zeigen, es ist nur eine nicht interaktive Textliste von Abhängigkeiten
Tristan
6
Dies mag eine neuere Gradle-Version sein, aber der Abhängigkeitsbaum scheint mit angezeigt zu werden ./gradlew appName:dependencies. In Android Studio finden Sie es unter appName > Tasks > help > dependencies.
Omahena
3
@ Cricket_007 Ich stimme Ihnen zu, dass die beiden Aufgaben unterschiedlich sind. Und ich kann es falsch halten ... Aber ich konnte keinen Weg finden, einen Abhängigkeitsbaum mit Gradle 4.6 und der androidDependenciesAufgabe wie der in Ihrer Antwort anzuzeigen . Die Ergebnisse waren nur eine flache Liste wie das Endergebnis einer Gradle-Abhängigkeitssuche. Irgendeine Idee warum und wie man einen Baum wie in Ihrer Antwort bekommt?
Omahena
1
@omahena Nun, ich habe direkt aus der Dokumentation kopiert. Meine Antwort pflegte zu sagenapp:dependencies
OneCricketeer
22

Öffnen Sie auf der rechten Seite die Registerkarte Gradle und klicken Sie auf das Gradle-Symbol (Gradle-Aufgabe ausführen). Geben Sie im Popup-Dialogfeld Folgendes ein:

app:dependencies

im Kommandozeilenfeld> ok

JimmyFlash
quelle
1
Dies funktionierte für mich, nachdem ich es entfernt app:und gerade ausgeführt hatte dependencies. Dies liefert eine nützlichere Ausgabe als die Methode in der Antwort von norbDEV, da sie einen Abhängigkeitsbaum anzeigt. Möglicherweise die gleiche Ausgabe wie, ./gradlew dependenciesjedoch ohne dass ein JDK installiert werden muss.
jk7
1
@ jk7 appist das Standardmodul für Android Studio-Projekte. Wenn Sie keine Module haben oder Abhängigkeiten für alle Module sehen möchten, gradle dependenciesfunktioniert dies auch
OneCricketeer
16

Schließlich habe ich es herausgefunden. Ich wähle Projekt aus dem Menü Projekt aus (siehe Abbildung unten).

Geben Sie hier die Bildbeschreibung ein

fruqi
quelle
12
Dies ist in keiner Weise eine Abhängigkeit Baum . Abhängigkeitsbäume werden beispielsweise verwendet, um widersprüchliche Versionen zu finden, wenn Bibliothek A Bibliothek B Version 1 verwendet, während Bibliothek C Bibliothek B Version 2 verwendet. Derzeit ist diese Antwort nicht korrekt. Die Frage sollte aktualisiert werden, um eine Liste der verwendeten Bibliotheken anzufordern, oder die Antwort von Cricket_007 sollte die akzeptierte sein.
JHH
16

Android Studio 3. +

  • Öffnen Sie das Gradle-Bedienfeld
  • Klicken Sie auf das Elefantensymbol mit dem Tooltip "Gradle Task ausführen".

Gradle Panel Screenshot + Elefanten Symbol

  • Wählen Sie das App- Gradle-Projekt aus
  • In die Befehlszeile einfügen :dependencies
  • Klicken Sie auf OK

Screenshot: Gradle Task ausführen - Fenster

Im Bedienfeld Ausführen finden Sie den Abhängigkeitsbaum.


Eine andere Methode:

  • Öffnen Sie das Gradle-Bedienfeld

  • Suchen Sie den Postfix "(root)" und öffnen Sie (Ordnername der App)

  • Öffnen Sie den Knoten Aufgaben

  • Öffnen Sie den Android- Knoten

  • Doppelklicken Sie auf "androidDependencies"

Im Bedienfeld Ausführen finden Sie die Abhängigkeitsliste

Wechseln Sie vor einem normalen Build zurück zur normalen Build-Konfiguration (neben dem Hammer).


Ein weiteres nützliches Werkzeug:

So finden Sie heraus, welche Abhängigkeit aktualisiert wird: https://github.com/ben-manes/gradle-versions-plugin

Verwendung

  • Fügen Sie dies zu build.gradle auf Projektebene hinzu

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

  • Öffnen Sie das Gradle-Bedienfeld
  • Klicken Sie auf das Elefantensymbol
  • Wählen Sie das Root - Projekt
  • In die Befehlszeile einfügen :dependencyUpdates
  • Klicken Sie auf OK
  • Warte ein bisschen

Im Bedienfeld Ausführen finden Sie das Ergebnis.

norbDEV
quelle
Dadurch wird eine flache Liste von Abhängigkeiten anstelle eines Baums erstellt. Dies ist daher nicht so nützlich, wenn Sie herausfinden müssen, welche Bibliothek eine bestimmte Abhängigkeit verwendet. +1 für den Tipp "Zurück zur normalen Build-Konfiguration wechseln".
jk7
5

Terminal-Befehl zum Anzeigen aller Abhängigkeitslisten ist

 ./gradlew -q dependencies app:dependencies --configuration implementation
vikas kumar
quelle
5

Android Studio 3.4

Überprüfen und visualisieren Sie jede Abhängigkeit im Abhängigkeitsdiagramm Ihres Projekts, das von Gradle während der Projektsynchronisierung aufgelöst wurde, indem Sie die folgenden Schritte ausführen:

  1. Android Studio -> Datei -> Projektstruktur (Dialog)
  2. Wählen Sie im linken Bereich des Fensters "Projektstruktur" die Option Abhängigkeiten .
  3. Wählen Sie im Bereich Module ein Modul aus, für das Sie die aufgelösten Abhängigkeiten überprüfen möchten.

Projektstruktur

  1. Für Android Studio 3.6 und höher: Sehen Sie sich auf der rechten Seite des Fensters "Projektstruktur" den Bereich " Gelöste Abhängigkeiten" an . Unten sehen Sie ein Beispiel, in dem Sie auf die Pfeile zum Erweitern klicken können, um in die einzelnen Unterabhängigkeiten zu navigieren. Die Textsuche ist jedoch nicht möglich, wie dies bei der Konsolenausgabe der Fall ist.

Bereich "Gelöste Abhängigkeiten"

Mehr erfahren.

Anor
quelle
3

Klicken Sie auf die Registerkarte Gradle und gehen Sie zu AppName > Aufgaben> Hilfe> Abhängigkeiten

Android Studio-Abhängigkeiten

Verkabelung
quelle