- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我尝试在 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/
我是一名优秀的程序员,十分优秀!