You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle构建文件中使用列表报错,求正确实现方式

问题解决:Gradle闭包中迭代变量语法错误

错误原因是Groovy闭包内的迭代变量it不需要加$前缀,$仅用于字符串插值场景,直接引用it即可。

修正后的代码

外部Gradle文件(建议明确放在ext块中,确保变量能被其他脚本访问)

ext {
    test = [
        ["testImplementation", "junit:junit:4.13.2"]
    ]

    list = []
    list.addAll(test)
}

app/build.gradle的dependencies块(两种写法可选)

写法1:保留it变量,去掉$

dependencies {
    list.each {
        if (it[0].equals("testImplementation")) {
            testImplementation it[1]
        }
    }
}

写法2:显式命名迭代变量(可读性更好)

dependencies {
    list.each { depEntry ->
        if (depEntry[0].equals("testImplementation")) {
            testImplementation depEntry[1]
        }
    }
}

优化写法(通用适配所有依赖配置)

如果你的列表里可能包含多种依赖配置(比如implementation、androidTestImplementation等),可以不用写判断逻辑,直接通过字符串转方法调用的方式添加:

dependencies {
    list.each { configName, depNotation ->
        delegate."${configName}"(depNotation)
    }
}

这里delegate指向dependencies块的上下文,确保配置方法能被正确调用。

内容的提问来源于stack exchange,提问作者SageJustus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 18:55:18