una studio programa para nombre fortnite example desde crear como cero cambiar app aplicaciones aplicacion android android-studio android-gradle build.gradle android-productflavors

studio - id de aplicacion android



¿Cómo usar sabores con diferentes nombres de aplicaciones en el estudio de Android? (3)

Como ya tiene un manifiesto separado para el sabor libre, ¿por qué no asigna su etiqueta a un valor de recurso de cadena diferente?

android:label="@string/free_app_name"

En mi build.gradle de nivel de aplicación tengo los siguientes sabores:

productFlavors { originalFlavour{ } freeFlavour{ } }

El asunto es construir ambos sabores, obtengo el mismo nombre de aplicación. En cambio, me gustaría tener diferentes nombres de aplicaciones para cada sabor. Solo agregar un sufijo sería útil. Espero que alguien pueda ayudarme.

Gracias por adelantado

EDITAR :

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>


Elimine la cadena app_name de su archivo strings.xml existente, luego puede hacer esto:

productFlavors { originalFlavour{ resValue "string", "app_name", "Original Flavor Name" } freeFlavour{ resValue "string", "app_name", "Free Flavor Name" } }

Entonces, la referencia existente a @string/app_name en su manifiesto se referirá a un recurso de cadena generado, que se basa en el sabor seleccionado.

Tenga en cuenta que si especifica una etiqueta para su Actividad de inicio (definiendo la android:label xml en el elemento <activity> ), ese valor se usará en muchos lugares visibles para el usuario en lugar de en la etiqueta de la aplicación. Para superar esto en su caso, puede eliminar la etiqueta de su elemento <activity> completo. Consulte https://.com/a/13200774/2911458 para obtener más detalles sobre esta distinción.


Puede usar un recurso de cadena en AndroidManifest.xml:

<application android:label="@string/app_name">

Y luego use diferentes archivos de recursos de valores para cada sabor en la carpeta ../app/src/ :

La clave de esta solución es que puede crear archivos localizados strings.xml dentro de cada carpeta de valores para cada sabor: / res / values ​​/, / res / values-pt /, / res / values-es /, etc.

Cada string.xml podría tener el nombre de la aplicación localizado, el valor predeterminado (/ res / values ​​/) para Free Flavour Name podría ser:

<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Free Flavor Name</string> </resources>