Android:为不同的应用程序风格使用不同的字符串

Android:为不同的应用程序风格使用不同的字符串,android,string,gradle,android-studio,Android,String,Gradle,Android Studio,我有一个android应用程序,它有两种不同的风格/变体。如何为每种口味设置不同的字符串(例如应用程序名称、按钮标签等)? 到目前为止,我所做的实际工作是:我使用gradle创建了两种口味。具体而言,我创建了一个flavor1_res和一个flavor2_res文件夹,并将特定于味道的资源放在其中。 我特别在每个文件夹下放了一个strings.xml文件。每个文件包含相同的字符串标签,但字符串的值不同。从命令行(例如使用gradlew assembleeflavor1)构建的应用程序是正常的,但

我有一个android应用程序,它有两种不同的风格/变体。如何为每种口味设置不同的字符串(例如应用程序名称、按钮标签等)? 到目前为止,我所做的实际工作是:我使用gradle创建了两种口味。具体而言,我创建了一个flavor1_res和一个flavor2_res文件夹,并将特定于味道的资源放在其中。
我特别在每个文件夹下放了一个strings.xml文件。每个文件包含相同的字符串标签,但字符串的值不同。从命令行(例如使用
gradlew assembleeflavor1
)构建的应用程序是正常的,但在Android Studio中,我的字符串无法识别,并且我得到了所有这些编译错误。
还有别的办法吗?如何让Android Studio识别这两个string.xml文件?(我已经将相应的文件夹添加为源文件夹)

谢谢,
托马斯

嗯,这真的很旧了,但我还是要试一试。我认为可以在主文件夹中放置一个strings.xml来定义每个字符串值。它们可以是空的:

<string name="myAwesomeString1"></string>


然后Android Studio知道字符串存在,当您构建它时,它将从flavor文件中获取值。

如果我理解正确,Android Studio(AS)无法识别resources文件夹的内容。如果在build.gradle(应用程序)中,您具有以下功能:

productFlavors {
    free {
        applicationIdSuffix ".free"
        versionNameSuffix "-free"
    }
    paid {
        applicationIdSuffix ".paid"
        versionNameSuffix "-paid"
    }
}

在“构建变体”中有一个窗格,可以选择免费或付费。因此,如果单击“释放”,也将识别“释放”下的res文件夹的内容。

您可以在build.gradle文件中声明资源字符串,如下所示:

productFlavors {
    devel {
        resValue 'string', 'fancy_name', 'Development App'
    }
    prod {
        resValue 'string', 'fancy_name', 'Production App'
    }
}

因此,现在根据您正在构建的口味,“fancy_name”字符串将是“Development App”或“Production App”。我一直在用这个。

谢谢亚历克西斯的回答!我想当我发布这个问题时,这个功能是不可用的。再次感谢!您可以使用
context.getString(R.string.fancy_name)
来获取它,我在AndroidManifest中使用它的是谁?