我有一个自定义的Gradle
文件custom.gradle
,可以像这样将变量加载到BuildConfig
和manifestPlaceholders
中:
ext.loadProperty = {propertyName, propertyValue ->
buildConfigField("String", propertyName, "\"" + propertyValue + "\"")
manifestPlaceholders[propertyName] = propertyValue
}
我在模块的build.gradle
上加载函数,如下所示:
apply from: '../gradlescripts/custom.gradle'
我在模块的build.gradle
中访问defaultConfig
中的函数,如下所示:
loadProperty("SOME_NAME", "SOME_VALUE")
这会抛出一个错误:
Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method buildConfigField() for arguments [String, SOME_NAME, "SOME_VALUE"] on project ':app' of type org.gradle.api.Project.
我不知道如何从另一个模块的build.gradle
文件加载的自定义.gradle文件访问buildConfigField
和manifestPlaceholders
。
我已经尝试在build.gradle
文件的顶层和同一文件的defaultConfig
上使用apply from:
函数,但没有成功。
我是不是漏了什么?任何指导都将不胜感激。
1条答案
按热度按时间jfewjypa1#
好吧,经过一番折腾,我找到了解决办法。我只需要将androidExtension传递给函数:
然后像这样从
defaultConfig
调用函数: