Analyze your dependency tree, detect version conflicts, identify duplicates, surface deprecation warnings, and manage your Gradle version catalog — all from one panel.
Dependency Health provides full dependency tree analysis for your Android project. It runs ./gradlew dependencies under the hood, parses the full resolution tree, and surfaces problems that Gradle silently resolves — version conflicts, duplicate artifacts, deprecated libraries, and outdated catalog entries.
Modern Android projects accumulate hundreds of transitive dependencies. Dependency Health gives you a single dashboard to understand what your app actually depends on, what needs attention, and how to resolve issues before they cause runtime failures. It also includes a visual editor for Gradle version catalogs (libs.versions.toml) so you can manage library versions without hand-editing TOML files.
Dependency problems are often invisible until they cause a crash in production. Here are the issues that Dependency Health catches early:
NoSuchMethodError or ClassNotFoundException at runtime.kotlin-android-extensions, and sunset Google Play Services modules no longer receive security patches.libs.versions.toml) are hard to maintain manually. Tracking which versions are outdated across dozens of entries is tedious and error-prone without tooling.View the complete dependency tree for any configuration — implementation, debugImplementation, releaseImplementation, androidTestImplementation, and their transitive closures. The tree is displayed in a collapsible panel with color-coded nodes: direct dependencies in bold, transitive dependencies indented, and resolved conflicts highlighted. Search and filter to find any artifact in the tree instantly.
Gradle resolves version conflicts by picking the highest version, but that does not always mean the right version. Dependency Health shows every conflict — where two paths in the tree request different versions of the same artifact — along with which version Gradle selected and which was rejected. For each conflict, ADB Pro suggests whether to add an explicit constraint, align versions, or investigate compatibility.
The same library appearing under different group IDs or as both a direct and transitive dependency wastes APK size and can cause classpath issues. Dependency Health identifies duplicate artifacts (same functionality pulled via different coordinates) and suggests exclusions to keep your classpath clean. This is common when migrating between library ecosystems, such as moving from the old Support Library to AndroidX.
Dependency Health cross-references your dependencies against known deprecation notices. Libraries like the legacy Support Library, deprecated Kotlin extensions (kotlin-android-extensions), and sunset Google Play Services modules are flagged with a recommendation for their modern replacement. The deprecation database is updated with each ADB Pro release.
Gradle sometimes resolves a dependency to a version lower than what you requested — typically when a platform BOM or resolution strategy forces an older version. Dependency Health detects every downgrade by comparing the requested version against the resolved version in Gradle's output (the oldVersion -> newVersion notation). Each downgrade entry shows the artifact, the version you asked for, the version Gradle actually resolved, and which rule or BOM forced the downgrade. Downgrades are dangerous because they may introduce API incompatibilities with code that targets the newer version.
Some libraries pull in an unexpectedly large number of transitive dependencies — a single implementation declaration can add 30+ transitive artifacts to your classpath. Dependency Health identifies these "oversized" root dependencies and reports their transitive fan-out count. This helps you understand which libraries are responsible for APK bloat and whether lighter alternatives exist. For example, pulling in the full Google Play Services monolith instead of the specific module you need can add megabytes to your APK.
When your project uses a Gradle version catalog (libs.versions.toml), Dependency Health scans for three categories of catalog hygiene issues:
| Issue Type | Description | Suggestion |
|---|---|---|
| Unused Version | A version key declared in the [versions] section that no library or plugin references |
Remove the unused version entry from the TOML file |
| Hardcoded Version | A library or plugin entry with an inline version string instead of a version.ref |
Extract the version into [versions] for centralized management |
| Missing Entry | A dependency used in build.gradle that is not declared in the version catalog |
Add the dependency to the catalog to centralize version management |
For every conflict and duplicate detected, Dependency Health can auto-generate Gradle exclusion rules. The generator analyzes dependency paths to determine which transitive dependency should be excluded, then produces ready-to-paste code in either Kotlin DSL or Groovy DSL format. For conflicts, it keeps the desired resolved version and suggests excluding the conflicting artifact from the paths that pull in the wrong version. For duplicates, it keeps the shortest (primary) path and suggests excluding from all other paths.
If your project uses a Gradle version catalog (libs.versions.toml), Dependency Health provides a visual editor for it. View all declared versions, libraries, bundles, and plugins in a table. Sort by version age to find the most outdated entries. ADB Pro checks for newer stable versions and shows an update indicator next to each entry. Click to update the version in place — the TOML file is edited directly with proper formatting preserved.
| Alias | Group:Artifact | Current Version | Latest Stable | Status |
|---|---|---|---|---|
androidx-core-ktx |
androidx.core:core-ktx | 1.13.1 | 1.15.0 | Update available |
retrofit |
com.squareup.retrofit2:retrofit | 2.11.0 | 2.11.0 | Up to date |
kotlin-stdlib |
org.jetbrains.kotlin:kotlin-stdlib | 2.0.21 | 2.1.0 | Update available |
material |
com.google.android.material:material | 1.12.0 | 1.12.0 | Up to date |
Compare the dependency tree of your current build against a previously analyzed build. The diff view shows newly added dependencies, removed dependencies, and version changes. This is invaluable during code review — when a PR changes dependencies, you can see exactly what was added, removed, or upgraded and assess the impact on APK size and compatibility.
Scan and manage your dependencies from these entry points:
libs.versions.toml, or from the panel toolbar.Additional entry points:
libs.versions.toml and click the "Catalog Editor" gutter iconConfigure Dependency Health at Settings > Tools > ADB Pro > Dependency Health:
releaseRuntimeClasspath)After scanning dependencies and resolving issues, confirm that your dependency tree is healthy:
libs.versions.toml version catalog file is up to date, with no stale entries showing "Update available" status.Official documentation for Gradle dependency management: