How to use flavors with different app names in Android studio?
Remove the app_name
string from your existing strings.xml
file, then you can do this:
productFlavors { originalFlavour{ resValue "string", "app_name", "Original Flavor Name" } freeFlavour{ resValue "string", "app_name", "Free Flavor Name" }}
Then the existing reference to @string/app_name
in your manifest will refer to a generated string resource, which is based on the flavor selected.
Note that if you specify a label for your launch Activity (by defining the android:label
xml tag in the <activity>
element), that value will be used in many user-visible places rather than your application's label. To overcome this for your case, you can just remove the label from your <activity>
element altogether. See https://stackoverflow.com/a/13200774/2911458 for more details on this distinction.
You could use a string resource in AndroidManifest.xml:
<application android:label="@string/app_name">
And then use different values resource files for each flavor in ../app/src/ folder:
The key of this solution is that you could create localized strings.xml files inside each values folder for each flavor: /res/values/, /res/values-pt/, /res/values-es/, etc.
Each string.xml could have app name localized, the default (/res/values/) for Free Flavor Name could be:
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">Free Flavor Name</string></resources>
Since you already have a separate manifest for the free flavor, why not assign its label to a different string resource value?
android:label="@string/free_app_name"