Android中为不同Build Flavors设置不同应用名称的方法
给不同Build Flavors设置不同应用名称的解决方案
嗨,这事儿其实很简单,Android的资源系统天生就支持按Flavor区分资源,咱们一步步来搞定:
第一步:在Module级build.gradle中配置Build Flavors
先确保你已经在app/build.gradle(注意是Module层级的配置文件,不是Project级的)里正确定义了两个flavor:
android { // 保留你原有的compileSdk、defaultConfig等配置 flavorDimensions "flavorType" // 维度名称可自定义,比如用"version"也没问题 productFlavors { flavor1 { dimension "flavorType" // 这里可以添加其他flavor专属配置,比如applicationId后缀、版本号之类的 } flavor2 { dimension "flavorType" } } }
第二步:为每个Flavor创建专属资源文件夹
接下来给每个flavor单独创建存放app_name的资源目录:
- 给flavor1创建目录:
app/src/flavor1/res/values - 给flavor2创建目录:
app/src/flavor2/res/values
然后在各自的values目录下新建strings.xml文件:
- flavor1的strings.xml:
<resources> <string name="app_name">AppFlavor1</string> </resources>
- flavor2的strings.xml:
<resources> <string name="app_name">AppFlavor2</string> </resources>
第三步:保持Manifest引用不变
你原来Manifest里的android:label="@string/app_name"完全不用修改!当构建对应flavor时,Android会自动优先加载该flavor专属资源文件夹里的app_name,而不是主源码集(app/src/main/res)里的默认值。
如果主源码集里也有app_name,它会作为 fallback 默认值——当某个flavor没定义自己的app_name时才会生效,咱们这里两个flavor都有专属配置,所以完全不用担心冲突。
验证效果
你可以在Android Studio的Build Variants面板里切换到flavor1Debug或flavor2Debug,运行app就能看到对应的应用名称啦!
内容的提问来源于stack exchange,提问作者BekaKK
相关产品推荐
相关产品推荐

