Как показать дерево зависимостей в 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), вы находитесь не в той папке.

OneCricketeer
источник
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

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

JimmyFlash
источник
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
  • Нажмите ОК
  • Подожди немного

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

norbDEV
источник
Это создает плоский список зависимостей, а не дерево, поэтому не так полезно, если вам нужно выяснить, какая библиотека использует конкретную зависимость. +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
Викас Кумар
источник
3

Щелкните вкладку Gradle и перейдите в AppName > Tasks> help> dependencies.

Зависимости студии Android

Кружение
источник