Defining 'resValue' using an existing string definition

In my experience you can't resolve a @string/my_string in the resValue DSL. Gradle put the value as a simple string inside the resource file.

In this case you can use different folder to achieve it:

Just use:

src/release/res/values/strings.xml
src/debug/res/values/strings.xml

If you would like to use different resource for each build variant (build type+flavor) you can use:

src/flavor1Release/res/values/strings.xml
src/flavor1Debug/res/values/strings.xml
src/flavor2Release/res/values/strings.xml
src/flavor2Debug/res/values/strings.xml

This is actually possible. All you have to do is declare those strings as empty in your defaultConfig, like this:

defaultConfig {
    resValue "string", "prod_name", ""
    resValue "string", "beta_name", ""
}