¿Cómo usar los tipos de compilación (depuración vs liberación) para establecer diferentes estilos y nombres de aplicaciones?
Fondo
En Android Studio, puede tener diferentes tipos de construcción, cada uno tiene su propia configuración, similar a los productos-sabores (como se muestra aquí )
El problema
Deseo que cada vez que tenga mi aplicación instalada en alguna parte, inmediatamente sabría qué tipo era – lanzar o depurar, sólo por mirarlo.
- Cómo acelerar el proceso de generación de Gradle en Android Studio
- El registro de LibGDX no aparece en logcat
- Gradle: Error de ejecución para la tarea ': processDebugManifest'
- ActivityCompat.requestPermissions que no muestran el cuadro de diálogo
- Gradle script para autoversion e incluir el hash de commit en Android
Para esto, creo que puedo usar el archivo build.gradle:
buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { debuggable true } }
La cosa es, no sé qué poner allí. Quiero que el nombre de la aplicación sea diferente (y sin embargo tenga la cadena en los archivos de cadenas, ya que se traduce), y quiero configurar el estilo de algo en la aplicación para que sea diferente (por ejemplo, el color de la barra de acción) .
He encontrado que puedo usar "resValue" (encontrado aquí ), pero por alguna razón, no importa lo que hago, no compilará:
- Si el recurso ya fue declarado (como en el nombre de la aplicación, que se traduce), se dice que el recurso está duplicado
- Si el recurso no fue declarado, no puedo alcanzarlo vía código / xml.
La pregunta
¿Cómo puedo utilizar diferentes valores de recursos para los tipos de compilación, incluso si ya existen?
- Android Studio: migrar complejo build.xml a build.gradle
- Error de estudio de Android: Se ha producido un error al intentar calcular los paquetes requeridos
- Para ejecutar dex en proceso, el demonio Gradle necesita un montón más grande. Actualmente tiene aproximadamente 910 MB
- TestCompile resultados en el estudio de Android no resolver las dependencias
- Advertencia de Android Studio: Utilizar complementos incompatibles para el procesamiento de anotaciones
- Liberar memoria de una actividad particular cuando se destruye
- AVD Manager en Android Studio 1.5.1 e instalar en un emulador de ubicación personalizado no se ejecutará
- Error: No se encontró com.google.gms: google-services: 1.0. Al agregar el plugin de servicio de google en build.gradle en android studio
¿Cómo puedo utilizar diferentes valores de recursos para los tipos de compilación, incluso si ya existen?
Ya existen en la fuente main
. Agregue otros conjuntos de fuentes para sus otros tipos de interés de creación, en los que reemplaza los recursos que desea.
Por ejemplo, en este proyecto de ejemplo , tengo una fuente main
y un conjunto de fuentes de debug
. Ambos tienen el app_name
cadena app_name
en res/values/strings.xml
, pero con valores diferentes. En una compilación de debug
, se utilizará la versión de fuentes de debug
del recurso; En cualquier otra compilación (por ejemplo, release
), el conjunto de fuentes de debug
se ignora por completo y se utiliza la versión de fuente main
del recurso.
Tenga en cuenta que no tengo una fuente de release
. Particularmente al sobreescribir recursos, esto está perfectamente bien; sólo necesita un conjunto de fuentes para un tipo de compilación cuando desee cambiar algo para ese tipo de compilación, no para cada tipo de compilación que esté utilizando.
En Archivo | Estructura del proyecto | app | Sabores tenemos:
Version Name: 1.3
En el archivo de recursos de Strings tenemos:
<string name="app_name">MyAppTitle</string>
En "onCreate" de la clase MainActivity:
... //add version to application title int versionCode = BuildConfig.VERSION_CODE; // unused in my application String versionName = BuildConfig.VERSION_NAME; this.setTitle(this.getTitle() + " v"+ versionName); ...
El resultado es "MyAppTitle v1.3"
- Cómo comprobar si una actividad se está ejecutando o no
- Android – Hacer algo * después de * texto se cambia en EditText