这次我遇到了这个问题,我试图在 gradle 脚本中获取当前的风格。我已经尝试过这里给出的答案如何在 gradle 中获取当前的风味 https://stackoverflow.com/questions/30621183/how-to-get-current-flavor-in-gradle没有运气。
我在他们使用的一些答案中没有看到
// Get all flavors
android.productFlavors.all { flavor ->
if (flavor.name.equals("flavorName")) {
// do what you like
}
// ...
}
但我也没有任何运气,因为我收到以下错误:>无法获取任务的未知属性“android”
所以我不知道如何获得当前的味道,任何帮助将非常感谢,谢谢!
编辑:我需要做的是执行一段针对每种风格不同的代码,我当前的想法是知道在任务中执行此操作所选择的构建变体,但如果有任何其他方法可以做到这一点完美的。
我已经发布了一个工作解决方案here https://stackoverflow.com/a/34679933/4350967, 那是:
以下函数准确返回当前口味名称:
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”或“Debug App”按钮进行编译来实现的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)