Android中libs.versions.toml误报约定插件依赖未使用的解决办法
解决libs.versions.toml中约定插件依赖被标记“未使用”的问题
原因
Android Studio(或JetBrains系列IDE)的静态代码分析无法自动追踪build-logic模块里约定插件对libs.versions.toml依赖的引用,因此误判这些依赖未被使用。
解决方案
1. 用类型安全访问器替代findLibrary()
把插件里libs.findLibrary("xxx").get()的写法换成Gradle自动生成的类型安全访问器,IDE能直接识别这类引用:
// 替换前 val bom = libs.findLibrary("compose-bom").get() // 替换后(需确保libs.versions.toml中依赖命名符合驼峰规则,比如compose-bom对应compose.bom) val bom = libs.compose.bom
修改后的Compose约定插件代码示例:
dependencies { val bom = libs.compose.bom add("api", platform(bom)) add("androidTestImplementation", platform(bom)) add("api", libs.compose.preview) add("debugApi", libs.compose.tooling) }
2. 给未识别的依赖添加注释标记
在libs.versions.toml中,给被误标未使用的依赖加上# used-in: build-logic注释,部分IDE会识别该标记并取消高亮:
[versions] agp = "8.2.2" kotlin = "1.9.20" compose = "2.1.4" [libraries] compose-bom = { module = "androidx.compose:compose-bom", version.ref = "compose" } compose-preview = { module = "androidx.compose.ui:ui-preview", version.ref = "compose" } compose-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" } # used-in: build-logic agp = { module = "com.android.tools.build:gradle", version.ref = "agp" } # used-in: build-logic kotlin-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
3. 调整IDE的检查规则
如果前两种方法无效,可直接修改IDE的未使用依赖检测范围:
- 打开
Settings → Editor → Inspections → Kotlin → Unused declaration - 找到
Unused library dependency from version catalog选项 - 点击
Configure,把build-logic模块路径加入排除列表,或者缩小检测范围,排除build-logic下的脚本。
4. 强制刷新Gradle项目
偶尔IDE缓存会导致识别异常,执行File → Sync Project with Gradle Files或点击工具栏的刷新按钮,重新同步项目后可能解决标记问题。
内容的提问来源于stack exchange,提问作者Hector
相关产品推荐
相关产品推荐

