android - 从另一个文件调用 gradle resValue 会导致 "Error:Gradle DSL method not found: ' resValue( )'"

标签 android function gradle groovy resources

我遇到以下问题。

我有一个主文件 app.gradle,我称之为

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

这工作正常。 现在我尝试将该功能移动到使用

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

包含以下内容:

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

并从主 gradle 中调用它

defaultConfig {
   AddResourcesVariables()
}

然后我收到以下错误:

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

我是否缺少一些导入内容?

谢谢!

最佳答案

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

您可以在不同的文件中定义[类型][名称][值]的映射

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
  }
}

尚未编译,但应该接近。

关于android - 从另一个文件调用 gradle resValue 会导致 "Error:Gradle DSL method not found: ' resValue( )'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44952983/

相关文章:

android - 如何使用 Google Play 自定义应用 API 上传 apk

Android - 在暂停预览时拍照

function - lambda 函数的 Haskell 解释

c - 字符串长度导致极大的数字

javascript - 在 JavaScript 中测试函数的最佳方法?

android - 错误:任务 ':packageAllDebugClassesForMultiDex'的执行失败。不考虑库

java - Android studio重构为androidx后没有重构.java和.xml文件中的支持类

java - 如何使用 intellij IDEA 创建带有 gradle 项目的 java servlet

android - : Lcom/amazonaws/mobileconnectors/cognitoauth/handlers/AuthHandler; 解析失败

android - 比较 .yml 文件 OpenCV 中的图像 SIFT/SURF 细节?