gpt4 book ai didi

android - 如何从 Gradle 中的另一个函数调用 buildConfigField()?

转载 作者:行者123 更新时间:2023-12-03 03:44:51 31 4
gpt4 key购买 nike

这是我尝试在 Gradle 中为我的 Android 应用程序执行的操作的极其简化的版本:


android {

buildTypes {

debug {

buildConfigFieldMyWay("keyName", "keyValue")
buildConfigField("String", "keyName", "keyValue") }
}
}

}

def buildConfigFieldMyWay(String keyName, String keyValue) {
buildConfigField("String", keyName, keyValue)
}

真实版本更复杂,这就是为什么最好将我正在做的事情组织成单独的函数。

问题是,当我执行 Gradle 同步时,出现此错误:没有方法签名:build_byqgds5lao5ipgp4gk5ftyud4.android() 适用于参数类型:(build_byqgds5lao5ipgp4gk5ftyud4$_run_closure2) 值:[build_byqgds5lao5ipgp4gk5ftyud4$_run_closure2@536e468e]

我认为这与 Android 使用的 DSL Gradle 有关;当在 android { buildTypes { debug 中调用 buildConfigField() 时,它正在 BuildType< 上运行 buildConfigField()/ 对象。如果我从一个单独的函数中调用它,则没有 BuildType 可以对其进行操作。

所以我要么需要修改 DSL,以便我的函数 (buildConfigFieldMyWay()) 可以在 android { buildTypes { debug 中调用并在 上运行BuildType 对象,或者我需要将 BuildType 传递给函数。可能有一些我需要在这里使用的简单语法,但我没有找到。这是什么?

最佳答案

您可以在函数 buildConfigFieldMyWay 中传递构建类型:

def buildConfigFieldMyWay(buildType, String keyName, String keyValue) {
buildType.buildConfigField("String", keyName, keyValue)
}

然后,您可以使用 it 获取构建类型:

android {
buildTypes {
debug {
buildConfigFieldMyWay(it, "keyName", "keyValue")
buildConfigField("String", "keyName", "keyValue")
}
}
}

关于android - 如何从 Gradle 中的另一个函数调用 buildConfigField()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61804635/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com