将android字符串资源值替换为带有resValue()或类似内容的Gradle任务

将android字符串资源值替换为带有resValue()或类似内容的Gradle任务,android,gradle,android-gradle-plugin,android-resources,Android,Gradle,Android Gradle Plugin,Android Resources,我正在研究使用Gradle任务更改字符串资源值。我正在研究最有可能使用复制任务来复制string.xml并覆盖 在这一点上,我想我将重写xml文件的内容,并使用正则表达式模式进行替换。这似乎是一种不好的方法,在Gradle任务中使用类似于resValue()的东西难道没有更好的方法吗?我有三种方法可以做到这一点,详细信息取决于您的具体设置,所以我只想指出一些可以帮助您的方法: 1) 在某些情况下,我们也通过type:Copy进行复制。我们要做的是将变量文件的可能版本存储在特定子文件夹中,这些子文

我正在研究使用Gradle任务更改字符串资源值。我正在研究最有可能使用复制任务来复制string.xml并覆盖


在这一点上,我想我将重写xml文件的内容,并使用正则表达式模式进行替换。这似乎是一种不好的方法,在Gradle任务中使用类似于
resValue()
的东西难道没有更好的方法吗?

我有三种方法可以做到这一点,详细信息取决于您的具体设置,所以我只想指出一些可以帮助您的方法:

1) 在某些情况下,我们也通过
type:Copy
进行复制。我们要做的是将变量文件的可能版本存储在特定子文件夹中,这些子文件夹被排除在构建之外。然后我们将特定构建所需的版本复制到源代码中,其中构建过程取决于复制任务,从而确保在编译之前可以使用正确的文件

2) 您可以查看
gradle.properties
。这是您可以存储键值对以供gradle和管理构建管道使用的地方。您可以这样定义属性:

someProperty=abc123
然后在配置阶段通过
${someProperty}
将其加载到Gradle中

3) 对于不同的构建,可以引入不同的构建管道。这与1)、2)没有区别,但您可以使用它来控制您使用的配置。例如,您可以使用配置任务设置
gradle.properties
,并让gradle根据
gradle.properties
中的值,使用特定的
settings.xml
执行特定的生成管道。或者,您可以为每个可能的
settings.xml
定义任务,然后执行这些任务


如果有更有效的方法来实现这一点,那么我也对答案感兴趣。希望这些都能有所帮助。

我可以问一下,您具体想通过这些实现什么吗?听起来很有趣白色标签。。我的应用程序中有一些字符串是从其他非本地源中提取的,所以我必须下载它们,然后替换。啊,我明白了,祝你好运,希望你能得到一个很酷的答案