Как использовать ароматизаторы с разными названиями приложений в Android studio?
В моей сборке на уровне приложения.gradle у меня есть следующие вкусы:
productFlavors {
originalFlavour{
}
freeFlavour{
}
}
Дело в том, что при создании обоих вкусов я получаю одно и то же имя приложения. Вместо этого я хотел бы иметь разные названия приложений для каждого вкуса. Просто добавление суффикса было бы полезно. Надеюсь, кто-нибудь мне поможет.
Заранее спасибо
EDIT:
App / src / main / AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="z.fncapps.etsiipod" >
<uses-permission
android:name="android.permission.CALL_PHONE"
android:required="false" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- actvities declared here -->
</application>
</manifest>
App / src / freeFlavour / AndroidManifest.xml
<uses-permission
android:name="android.permission.CALL_PHONE"
android:required="false" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- actvities declared here -->
</application>
3 ответа:
Удалите строку
app_name
из существующего файлаstrings.xml
, затем вы можете сделать следующее:productFlavors { originalFlavour{ resValue "string", "app_name", "Original Flavor Name" } freeFlavour{ resValue "string", "app_name", "Free Flavor Name" } }
Тогда существующая ссылка на
Обратите внимание, что если вы зададите метку для действия запуска (определив xml-тег@string/app_name
в вашем манифесте будет ссылаться на сгенерированный строковый ресурс, который основан на выбранном вкусе.android:label
в элементе<activity>
), то это значение будет использоваться во многих видимых пользователем местах, а не в метке вашего приложения. Чтобы преодолеть это для вашего случая, вы можете просто удалите метку из вашего элемента<activity>
полностью. См. https://stackoverflow.com/a/13200774/2911458 подробнее об этом различии.
Вы можете использовать строковый ресурс в AndroidManifest.xml:
<application android:label="@string/app_name">
, а затем использовать различные значения файлов ресурсов для каждого аромата в ../app/src / папка:
Ключ этого решения заключается в том, что вы можете создавать локализованные строки.xml-файлы внутри каждой папки значений для каждого аромата: /res / values/, /res/values-pt/, /res / values-es/ и т. д.
Каждая строка .xml может иметь локализованное имя приложения, значение по умолчанию (/res/values/) для свободное имя аромата может быть:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Free Flavor Name</string> </resources>