在我的应用程序中,我有很多不同的产品风味,实际上大约有10种风味。 它们的做法是这样的:eng_testDebug,eng_prodDebug,eng_testRelease,eng_prodRelease e.t.c其他语言。从strings.xml获取app_name以获取gradle中的当前产品风格
所以,现在我有一个任务,在构建名称中添加“ - Test”到应用程序名称以构建测试。
现在我发现了一个解决方案来解析主sourceSet中的string.xml,并在gradle文件中使用manifestPlaceHolders构建我的应用程序名称。但它只适用于主要风味。 这里是获得默认的strings.xml APP_NAME我用的是代码:)
def getEditedAppName() {
if (getCurrentFlavor().contains("test")) {
return getAppName() + "(Test)";
} else {
return getAppName();
}
}
getCurrentFlavor(返回我使用的香精名称:
def getAppName() {
def stringsFile = android.sourceSets.main.res.sourceFiles.find { it.name.equals 'strings.xml' }
String s = new XmlParser().parse(stringsFile).string.find { [email protected] 'app_name' }.text();
return s.replaceAll("\"", "");
}
在这里,我修改,添加“测试” in:汇编任务。
基本上,问题是我如何获得其他sourceSet文件取决于我目前的建筑风格,所以我可以分析风味的app_name?
不幸的是,在gradle文件中为每种风味挑战app_name字符串对我来说不是一个有效的选项。
感谢您的回答,但我已经有每个我的口味和app_name overidden每个文件夹。但现在我无法找到一种方法来解析gradle中的这些超文件文件,以获取每个flavor的app_name。 –
通常这是自动完成的,如果你正确配置gradle – glethien
更新我的回答 – glethien