如何在Android Studio中显示依赖关系树?

fru*_*uqi 71 android intellij-idea gradle android-studio android-gradle-plugin

我的目标是在特定项目中查看依赖树(例如:appcompat,dagger等).

像一个IntelliJ:

在此输入图像描述

cri*_*007 162

问题中的图像并不真正显示树,只是编译到应用程序中的所有内容的平面列表.

你在用Gradle吗?

如果是这样,您可以通过运行Gradle命令真正看到"树"

Android文档:查看依赖关系树

GUI

  1. 选择" 视图" >" 工具窗口" >" Gradle"(或单击工具窗口栏中的"Gradle"图标).
  2. 展开AppName > 任务 > android并双击androidDependencies.Gradle执行任务后,应打开"运行"窗口以显示输出.

CLI

./gradlew app:dependencies
Run Code Online (Sandbox Code Playgroud)

和/或

./gradlew app:androidDependencies
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

注意:如果您在该文件夹中运行ls(或dir在Windows上),并且看不到gradlew(或gradlew.bat),则说明您的文件夹错误.

  • 这可能是较新的gradle版本,但是依赖关系树似乎与`./gradlew appName:dependencies`一起显示。在Android Studio中,可以在“ appName>任务>帮助>依赖项”下找到它。 (4认同)
  • @ cricket_007我同意你的看法,这两项任务是不同的.而且我可能错了......但是我找不到一种方法来显示Gradle 4.6的依赖树和你的答案中的`androidDependencies`任务.结果只是一个平面列表,就像Gradle依赖搜索的最终结果一样.知道为什么以及如何在你的答案中得到一棵树? (3认同)
  • 抱歉,但我对此非常怀疑。如果您在 Android Studio 上创建一个带有“基本活动”的新项目,并运行 `./gradlew app:androidDependency` 任务,则树将是 **扁平** ,与您的答案所描述的相反。我知道您是从文档中复制的,但这并不是第一次它们错误/过时。 (3认同)
  • 这不是您在此答案中显示的内容,它只是依赖项的非交互式文本列表 (2认同)

Jam*_*l S 22

在右侧,打开gradle选项卡>单击gradle图标(执行gradle任务),在弹出的对话框中输入:

app:dependencies
Run Code Online (Sandbox Code Playgroud)

在命令行字段>确定

  • 一旦我删除了“app:”并刚刚执行了“依赖项”,这对我很有用。这提供了比norbDEV答案中的方法更有用的输出,因为它显示了依赖树。可能与“./gradlew dependency”相同的输出,但不需要安装 JDK。 (2认同)

fru*_*uqi 16

最后,我弄清楚了.我所做的是从项目菜单中选择项目(见下图).

在此输入图像描述

  • 这绝不是依赖_tree_.当库A使用库B版本1而库C使用库B版本2时,依赖树例如用于查找冲突版本.问题所在,这个答案是不正确的.应该更新问题以请求使用的库列表,或者cricket_007的答案应该是可接受的. (11认同)

nor*_*DEV 14

Android Studio 3. +

  • 打开Gradle面板
  • 单击大象图标
  • 选择应用程序 gradle这个项目
  • 在命令行粘贴:dependencies
  • 单击确定

在" 运行"面板中,您将找到依赖关系树


另一种方法:

  • 打开Gradle面板

  • 找到"(root)"后缀并打开(app的文件夹名称)

  • 打开" 任务"节点

  • 打开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"
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 立即同步

  • 打开Gradle面板
  • 单击大象图标
  • 选择项目
  • 在命令行粘贴:dependencyUpdates
  • 单击确定
  • 等待一点点

在" 运行"面板中,您将找到结果.


Zor*_*ran 13

在最新的 android studio canary 版本中,您在 Gradle 工具中有依赖分析器

在此输入图像描述


Ano*_*nor 11

安卓工作室 3.4

按照以下步骤检查和可视化项目依赖关系图中的每个依赖项,如项目同步期间 Gradle 所解决的那样:

  1. Android Studio -> 文件 ->项目结构(对话框)
  2. 在“项目结构”窗口的左窗格中,选择Dependencies
  3. 在“模块”窗格中,选择要检查已解析依赖项的模块。

项目结构

  1. 对于 Android Studio 3.6 及更高版本:在“项目结构”窗口的右侧,查看已解决的依赖项窗格。下面显示了一个示例,您可以在其中单击展开箭头以导航到每个子依赖项。但是,它不允许像控制台输出那样进行文本搜索。

已解决的依赖项窗格

了解更多。

  • 实际上您也可以搜索..只需单击已解决的依赖项中的某个位置并开始输入。但是我面临性能问题 (3认同)

Wir*_*ing 7

单击Gradle选项卡并转到AppName > 任务 > 帮助 > 依赖项

Android Studio 依赖项


vik*_*mar 5

查看所有依赖项列表的终端命令是

 ./gradlew -q dependencies app:dependencies --configuration implementation
Run Code Online (Sandbox Code Playgroud)