我有一个Android应用程序,有两种不同的风格/变种。如何为每种风格添加不同的字符串(例如应用程序名称,按钮标签等)?
我到目前为止做了什么,实际上是工作但不完全像我想的那样:
我用gradle创造了两种口味。具体来说,我创建了一个flavor1_res和一个flavor2_res文件夹,并在其中添加了特定于风味的资源
具体来说,我在每个文件夹下放了一个strings.xml文件。每个文件包含相同的字符串标签,但字符串的值不同。应用程序从命令行构建正常(例如使用gradlew assembleFlavor1
),但在Android Studio中我的字符串无法识别,我得到所有这些编译错误。
还有另一种方法吗?如何让Android Studio识别两个strings.xml文件? (我已经将相应的文件夹添加为源文件夹)。
谢谢, 托马斯
答案 0 :(得分:2)
您可以在build.gradle文件中声明资源字符串,如下所示:
%pylab inline
import pandas as pd
import seaborn as sns
import numpy as np
sns.set(style="darkgrid")
sns.set(font_scale=1.5)
start = 10**12
finish = 1.1*10**12
y = np.linspace(start , finish)
pd.DataFrame(y).plot()
plt.tick_params(axis='x', labelsize=17)
plt.tick_params(axis='y', labelsize=17)
现在,根据您正在构建的风格,' fancy_name'字符串将是'开发应用程序'或者' Production App'。我一直都在用这个。
答案 1 :(得分:0)
嗯,这真的很老了,但无论如何我都会试一试。我想你可以在你的主文件夹中放置一个strings.xml来定义每个字符串值。它们可能是空的:
<string name="myAwesomeString1"></string>
然后Android Studio知道该字符串存在,并且当您构建它时将获取flavor文件中的值。
答案 2 :(得分:0)
如果我理解正确的问题,Android Studio(AS)无法识别资源文件夹的内容。如果在build.gradle(app)中,您有以下内容:
productFlavors {
free {
applicationIdSuffix ".free"
versionNameSuffix "-free"
}
paid {
applicationIdSuffix ".paid"
versionNameSuffix "-paid"
}
}
AS中有一个名为“Build Variants”的窗格,可以选择免费或付费。因此,如果您点击免费,AS将识别免费的res文件夹。