这次我有这个问题,我试图在gradle脚本中获取当前的味道。我试过这里给出的答案How to get current flavor in gradle 没有运气。
我在一些答案中看到他们使用
// Get all flavors
android.productFlavors.all { flavor ->
if (flavor.name.equals("flavorName")) {
// do what you like
}
// ...
}
但我也没有运气,因为我收到以下错误:>无法为任务获取未知属性'android'
所以我不知道如何获得当前的味道,任何帮助将非常感谢,谢谢!
编辑:我需要做的是执行一段针对每种风格不同的代码,我当前的想法是知道所选的构建变体在任务中执行此操作,但是如果有任何其他方法可以做这将是完美的。答案 0 :(得分:0)
如果您在应用级gradle脚本中使用“android”闭包,则可能会出现此错误。确保在
中使用它答案 1 :(得分:0)
我已经发布了一个有效的解决方案here,即:
以下函数完全返回当前风味名称:
def getCurrentFlavor() {
Gradle gradle = getGradle()
String tskReqStr = gradle.getStartParameter().getTaskRequests().toString()
Pattern pattern;
if( tskReqStr.contains( "assemble" ) )
pattern = Pattern.compile("assemble(\\w+)(Release|Debug)")
else
pattern = Pattern.compile("generate(\\w+)(Release|Debug)")
Matcher matcher = pattern.matcher( tskReqStr )
if( matcher.find() )
return matcher.group(1).toLowerCase()
else
{
println "NO MATCH FOUND"
return "";
}
}
您还需要
import java.util.regex.Matcher
import java.util.regex.Pattern
在开头或你的脚本。 在Android Studio中,这可以通过编译" Make Project"或者"调试应用程序"按钮。