2017-07-06 46 views
0

我有以下问题。从另一个文件中调用gradle resValue会导致“错误:找不到Gradle DSL方法:'resValue()'”

我有一个主文件app.gradle,我叫

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

该工程确定。 现在我试图移动该功能对进口的头另一个文件与

apply from: "gradle_tasks.gradle" 

具有以下内容:

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

并从主用的gradle

defaultConfig { 
    AddResourcesVariables() 
} 
叫它

然后我得到以下错误:

​​

我是否缺少一些导入?

谢谢!

回答

2

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

有不编译它,但应该接近。

+0

是的,这就是我现在这样做,但我徘徊,为什么我不能从该脚本调用resValue。也许我可以在该函数上发送defaultConfig类 – Hug

+0

您的答案适用于您的具体情况,但如果我想创建一个生成此映射的函数,那么该错误再次显示'错误:未找到Gradle DSL方法:'resValue( )'' – Hug

+1

我终于通过函数parmeter发送了defaultConfig变量,现在我可以调用defaultConfig.resValue(...) – Hug

相关问题