Jak wyświetlić drzewo zależności w Android Studio?

Odpowiedzi:

205

Obraz w pytaniu tak naprawdę nie przedstawia drzewa, tylko płaską listę wszystkiego, co zostało wkompilowane w aplikację.

Czy używasz Gradle?

Jeśli tak, możesz naprawdę zobaczyć to „drzewo”, uruchamiając polecenie Gradle

Dokumentacja systemu Android : wyświetl drzewo zależności

GUI

  1. Wybierz polecenie Widok > Okna narzędzi > Gradle (lub kliknij ikonę Gradle na pasku narzędzi).
  2. Rozwiń nazwę aplikacji > Zadania > android i kliknij dwukrotnie androidDependencies. Po wykonaniu zadania przez Gradle powinno otworzyć się okno Uruchom, aby wyświetlić dane wyjściowe.

CLI

(tworzy listę drzewiastą)

./gradlew app:dependencies

i / lub

(tworzy płaską listę)

./gradlew app:androidDependencies

Gdzie appjest nazwa twojego modułu

I dostajesz coś takiego

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

Uwaga : jeśli uruchomisz ls(lub dirw systemie Windows) w tym folderze i nie widzisz gradlew(lub gradlew.bat), jesteś w niewłaściwym folderze.

OneCricketeer
źródło
1
Dzięki, bardzo mi pomogło w wyśledzeniu niektórych przejściowych zależności.
Mark Keen
3
Nie jest to jednak to, co pokazujesz w tej odpowiedzi, to tylko nieinteraktywna lista tekstowa zależności
Tristan
6
Może to być nowsza wersja gradle, ale drzewo zależności wydaje się być wyświetlane z ./gradlew appName:dependencies. W Android Studio można go znaleźć pod appName > Tasks > help > dependencies.
omahena
3
@ cricket_007 Zgadzam się z tobą, że te dwa zadania są różne. I może źle to rozumiem ... Ale nie mogłem znaleźć sposobu na wyświetlenie drzewa zależności w Gradle 4.6 i androidDependencieszadaniu podobnym do tego w Twojej odpowiedzi. Wyniki były tylko płaską listą, taką jak końcowy wynik wyszukiwania zależności Gradle. Masz jakiś pomysł, dlaczego i jak zdobyć drzewo takie jak w Twojej odpowiedzi?
omahena
1
@omahena Cóż, skopiowałem prosto z dokumentacji. Moja odpowiedź brzmiałaapp:dependencies
OneCricketeer
22

Po prawej stronie otwórz zakładkę gradle> kliknij ikonę gradle (wykonaj zadanie gradle), w wyskakującym oknie dialogowym wpisz:

app:dependencies

w polu wiersza poleceń> ok

JimmyFlash
źródło
1
To zadziałało, gdy usunąłem app:i po prostu wykonałem dependencies. Daje to bardziej użyteczne dane wyjściowe niż metoda w odpowiedzi norbDEV, ponieważ pokazuje drzewo zależności. Prawdopodobnie taki sam wynik jak, ./gradlew dependenciesale bez konieczności instalowania JDK.
jk7
1
@ jk7 appto domyślny moduł dla projektów Android Studio. Jeśli nie masz modułów lub chcesz zobaczyć zależności dla wszystkich modułów, tak, gradle dependenciesrównież działa
OneCricketeer
18

Android Studio 3. +

  • Otwórz panel Gradle
  • Kliknij ikonę słonia z etykietką „Wykonaj zadanie Gradle”

Zrzut ekranu panelu Gradle + ikona słonia

  • Wybierz projekt aplikacji Gradle
  • W wierszu poleceń wklej :dependencies
  • Kliknij OK

Zrzut ekranu: Uruchom zadanie Gradle - okno

W panelu Uruchom znajdziesz drzewo zależności.


Inna metoda:

  • Otwórz panel Gradle

  • Znajdź przyrostek „(root)” i otwórz (nazwa folderu aplikacji)

  • Otwórz węzeł Zadania

  • Otwórz węzeł Androida

  • Kliknij dwukrotnie „androidDependencies”

W panelu Uruchom znajdziesz listę zależności

Przed normalną budową przełącz się z powrotem do normalnej konfiguracji kompilacji (obok młotka)


Kolejne przydatne narzędzie:

Jak sprawdzić, która zależność jest aktualizowana: https://github.com/ben-manes/gradle-versions-plugin

Stosowanie

  • Dodaj to do build.gradle na poziomie projektu

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

  • Otwórz panel Gradle
  • Kliknij ikonę słonia
  • Wybierz z głównego projektu
  • W wierszu poleceń wklej :dependencyUpdates
  • Kliknij OK
  • Poczekaj chwilę

W panelu Uruchom znajdziesz wynik.

norbDEV
źródło
Tworzy to płaską listę zależności, a nie drzewo, więc nie jest tak przydatne, jeśli chcesz dowiedzieć się, która biblioteka używa określonej zależności. +1 za wskazówkę „przełącz się z powrotem do normalnej konfiguracji kompilacji”.
jk7
16

W końcu to rozgryzłem. Co robię, to wybieram Project z menu Project (patrz obrazek poniżej).

wprowadź opis obrazu tutaj

fruqi
źródło
12
W żadnym wypadku nie jest to drzewo zależności . Drzewa zależności są używane np. Do znalezienia sprzecznych wersji, gdy biblioteka A korzysta z biblioteki B w wersji 1, podczas gdy biblioteka C korzysta z biblioteki B w wersji 2. W obecnym brzmieniu ta odpowiedź jest nieprawidłowa. Pytanie powinno zostać zaktualizowane, aby poprosić o listę używanych bibliotek, lub odpowiedź cricket_007 powinna być zaakceptowana.
JHH
6

Android Studio 3.4.0

Sprawdź i zwizualizuj każdą zależność na wykresie zależności projektu, rozwiązaną przez Gradle podczas synchronizacji projektu, wykonując następujące kroki:

  1. Android Studio -> Plik -> Struktura projektu (okno dialogowe)
  2. W lewym panelu okna „Struktura projektu” wybierz Zależności .
  3. w okienku Moduły wybierz moduł, dla którego chcesz sprawdzić rozwiązane zależności.

Struktura projektu

  1. Android Studio 3.6 i nowsze: po prawej stronie okna „Struktura projektu” spójrz na rozwiązane zależności panel . Poniżej przedstawiono przykład, w którym można kliknąć strzałki rozwijania, aby przejść do każdej zależności podrzędnej. Jednak nie pozwala na wyszukiwanie tekstu, tak jak robi to wyjście konsoli.

Okienko rozwiązanych zależności

Ucz się więcej.

Anor
źródło
5

terminal, aby wyświetlić listę wszystkich zależności, to

 ./gradlew -q dependencies app:dependencies --configuration implementation
vikas kumar
źródło
3

Kliknij kartę Gradle i przejdź do AppName > Zadania> pomoc> zależności

Zależności Android Studio

Wirujące
źródło