Cambiar el recurso de cadena por sabor / debug-build

Digamos que tenemos strings_test.xml, que almacena los valores de las cadenas para la prueba y debe mostrarse en una versión de depuración. Cuando el apk se construye como una versión de lanzamiento, todos los valores deben ser cambiados a una cadena vacía, por ejemplo, <string name="test_some_card_text">@string/empty</string> .

¿Existe la posibilidad de lograr esto?

Como siempre, gracias de antemano.

4 Solutions collect form web for “Cambiar el recurso de cadena por sabor / debug-build”

Sí, puedes hacerlo dentro de tu nivel de aplicación bajo buildTypes.

  buildTypes { mybuild { resValue "string", "test_some_card_text", '"test"' resValue "string", "other_text", '"other"' } debug { resValue "string", "test_some_card_text", '"test"' resValue "string", "other_text", '"other"' } } 

A continuación, acceder a ella de esta manera.

 getApplicationContext().getResources().getString(R.string.test_some_card_text); getApplicationContext().getResources().getString(R.string.other_text); 

Para la construcción que necesita para seleccionar que build variants y tienen que construirlo.

Sí, Gradle le permite anular las cadenas.

  • Agregue esto dentro de buildTypes {} en su aplicación / build.gradle

    Debug {applicationIdSuffix "debug"}

  • Que debe crear un directorio titulado debug junto a main . Si no, cree manualmente uno. (En serio, no he intentado esto, pero sé que esto es posible.)

  • Luego, si strings_test.xml está bajo res/values , cree una estructura de directorio similar en debug / y coloque su strings_text.xml con cadenas específicas de debug. Esto aparecerá en su compilación de depuración. Los que están bajo release / main / res / values ​​aparecerán en la versión de lanzamiento.

PS: Puede anular todos los datos de res y activos como esto de acuerdo a buildTypes y sabor. Sin embargo, no puede anular archivos Java, sin embargo puede agregarlos .

No es posible cambiar el valor de la cadena después de la creación del apk. Pero usted puede asentar el valor al texto o edittext … etx dinámicamente después de la creación del apk.

Como dijo @Aditya Naik, es posible usar Flavors. Documento oficial dice

BuildType -> Sabor -> principal -> Dependencias.

Esto significa que si se declara un recurso tanto en el tipo de construcción como en principal, se seleccionará el de Tipo de compilación.

Tenga en cuenta que para el ámbito de la fusión, los recursos del mismo (tipo, nombre) pero calificadores diferentes se manejan por separado.

Esto significa que si src / main / res tiene

  • Res / layout / foo.xml
  • Res / layout-land / foo.xml

    Y src / debug / res tiene

  • Res / layout / foo.xml

    A continuación, la carpeta de recursos fusionados contendrá el archivo foo.xml predeterminado de src / debug / res, pero la versión horizontal de src / main / res

Para más información visita Documento oficial – Fusión de recursos

  • ¿Hay una manera de cargar arbitrariamente recursos en tiempo de ejecución en Android?
  • Recursos android de escala automática
  • ID de recurso de Android
  • Gradle Robolectric Resources NotFoundException en pruebas
  • Android: ¿Cómo liberar recursos cuando termina la aplicación?
  • Android: buenas prácticas para organizar dirs y archivos en almacenamiento Tarjeta SD?
  • No se encontró ningún recurso en el archivo XML de diseño android
  • ¿Hay un punto que tiene res / drawable-ldpi en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.