Как показать дерево зависимостей в Android Studio?


Ответы:


200

Изображение в вопросе на самом деле не показывает дерево, а просто плоский список всего, что скомпилировано в приложении.

Вы используете Gradle?

Если это так, вы действительно можете увидеть «дерево», выполнив команду Gradle

Документация Android : просмотр дерева зависимостей

GUI

  1. Выберите « Просмотр» > « Окна инструментов» > « Gradle» (или щелкните значок Gradle на панели окон инструментов).
  2. Разверните AppName > Tasks > android и дважды щелкните androidDependencies. После того, как Gradle выполнит задачу, должно открыться окно «Выполнить», чтобы отобразить результат.

CLI

(создает древовидный список)

./gradlew app:dependencies

и / или

(создает плоский список)

./gradlew app:androidDependencies

Где имя appвашего модуля

И получается что-то вроде этого

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

Примечание . Если вы запускаете ls(или dirв Windows) в этой папке и не видите gradlew(или gradlew.bat), вы находитесь не в той папке.


1
Спасибо, мне очень помогли отследить некоторые временные зависимости.
Марк Кин

3
Это не то, что вы показываете в этом ответе, это просто неинтерактивный текстовый список зависимостей
Тристан

6
Это может быть более новая версия Gradle, но дерево зависимостей, похоже, отображается с ./gradlew appName:dependencies. В Android Studio его можно найти в разделе appName > Tasks > help > dependencies.
omahena

3
@ cricket_007 Я согласен с вами, что это разные задачи. И, возможно, я ошибаюсь ... Но я не смог найти способ отобразить дерево зависимостей с помощью Gradle 4.6 и androidDependenciesзадачи, подобной той, что была в вашем ответе. Результаты представляли собой простой список, похожий на конечный результат поиска зависимостей Gradle. Есть идеи, почему и как получить такое дерево, как в вашем ответе?
omahena

1
@omahena Ну я скопировал прямо из документации. Мой ответ говаривалapp:dependencies
OneCricketeer

22

Справа откройте вкладку Gradle> щелкните значок Gradle (выполнить задачу Gradle), во всплывающем диалоговом окне введите:

app:dependencies

в поле командной строки> ок


1
Это сработало для меня, когда я удалил app:и просто выполнил dependencies. Это дает более полезный результат, чем метод в ответе norbDEV, поскольку показывает дерево зависимостей. Возможно тот же результат, ./gradlew dependenciesно без необходимости установки JDK.
jk7 02

1
@ jk7 app- это модуль по умолчанию для проектов Android Studio. Если у вас нет модулей или вы хотите увидеть зависимости для всех модулей, да, gradle dependenciesтоже работает
OneCricketeer

17

Android Studio 3. +

  • Откройте панель Gradle
  • Щелкните значок слона с всплывающей подсказкой «Выполнить задачу Gradle».

Скриншот панели Gradle + значок слона

  • Выберите проект приложения Gradle
  • В командной строке вставьте :dependencies
  • Нажмите ОК

Снимок экрана: Запуск задачи Gradle - окно

На панели «Выполнить» вы найдете дерево зависимостей.


Другой способ:

  • Откройте панель Gradle

  • Найдите постфикс "(корень)" и откройте (имя папки приложения)

  • Откройте узел " Задачи"

  • Откройте узел Android

  • Дважды щелкните "androidDependencies"

На панели «Выполнить» вы найдете список зависимостей.

Перед нормальной сборкой вернитесь к нормальной конфигурации сборки (рядом с молотком)


Еще один полезный инструмент:

Как узнать, какая зависимость обновляется: https://github.com/ben-manes/gradle-versions-plugin

Применение

  • Добавьте это на уровень проекта build.gradle

    apply plugin: "com.github.ben-manes.versions"
    
    buildscript {
      repositories {
        jcenter()    
      }
    
      dependencies {
        classpath "com.github.ben-manes:gradle-versions-plugin:0.20.0"
      }
    }
    
  • Синхронизировать сейчас

  • Откройте панель Gradle
  • Щелкните значок слона
  • Выберите в корневой проект
  • В командной строке вставьте :dependencyUpdates
  • Нажмите ОК
  • Подожди немного

На панели «Выполнить» вы найдете результат.


Это создает плоский список зависимостей, а не дерево, поэтому не так полезно, если вам нужно выяснить, какая библиотека использует конкретную зависимость. +1 за совет «вернуться к нормальной конфигурации сборки».
jk7 02

16

Наконец-то разобрался. Что я делаю, так это выбираю « Проект » в меню «Проект» (см. Изображение ниже).

введите описание изображения здесь


12
Это ни в коем случае не дерево зависимостей . Деревья зависимостей используются, например, для поиска конфликтующих версий, когда библиотека A использует библиотеку B версии 1, в то время как библиотека C использует библиотеку B версии 2. Поскольку вопрос стоит, этот ответ неверен. Следует обновить вопрос, чтобы запросить список используемых библиотек, или ответ cricket_007 должен быть принятым.
JHH

6

Android Studio 3.4

Проверьте и визуализируйте каждую зависимость в графе зависимостей вашего проекта, разрешенную Gradle во время синхронизации проекта, выполнив следующие действия:

  1. Android Studio -> Файл -> Структура проекта (диалог)
  2. На левой панели окна «Структура проекта» выберите Зависимости .
  3. На панели « Модули» выберите модуль, для которого вы хотите проверить разрешенные зависимости.

Структура проекта

  1. Для Android Studio 3.6 и более поздних версий: в правой части окна «Структура проекта» найдите панель « Решенные зависимости» . Пример показан ниже, где вы можете щелкнуть стрелки «Развернуть», чтобы перейти к каждой подчиненной зависимости. Однако он не позволяет искать текст, как это делает вывод консоли.

Панель разрешенных зависимостей

Учить больше.


5

команда терминала для просмотра списка всех зависимостей

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.