从另一个文件调用gradle resValue会导致“错误:未找到Gradle DSL方法:'resValue()'”

时间:2017-07-06 15:18:54

标签: android function gradle groovy resources

我有以下问题。

我有一个主文件app.gradle,我打电话给

defaultConfig {
    resValue "string", "hello world", "1234567890"
}

这没关系。 现在,我正在尝试将该功能移动到使用

在标头上导入的另一个文件
apply from: "gradle_tasks.gradle"

具有以下内容:

ext.AddResourcesVariables = { ->
    resValue "string", "hello world", "1234567890"
}

并使用

从主gradle中调用它
defaultConfig {
   AddResourcesVariables()
}

然后我遇到以下错误:

Error:Gradle DSL method not found: 'resValue()'

我错过了一些导入吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

resValue()是来自defaultConfig的dsl方法。你无法导入它。

您可以在不同的文件中定义[type] [name] [value]的地图

ext.valueMap = [
   [type: "string", name: "hello world", value: "1234567890"],
   [type: "string", name: "hello world", value: "1234567890"],
]

然后在脚本中,你迭代它

defaultConfig{
  valueMap.each {
    resValue it.type, it.name, it.value
  }
}

Haven编译它,但应该关闭。