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