MissingTranslation para el idioma predeterminado ("…" no está traducido en "en")

Quiero generar un apk firmado y obtener el siguiente error:

Error:(65) Error: "..." is not translated in "en" (English) [MissingTranslation] 

Mis proyectos SÓLO contienen carpetas predeterminadas (sin complemento para un idioma) como la carpeta de values por ejemplo y un idioma, que es alemán (es decir, tengo una carpeta values-de )

Mi idioma predeterminado es el inglés, por lo que todos los recursos que no pertenecen a un idioma especial deben ser los ingleses.

PREGUNTAS

¿Por qué me está diciendo el android studio, falta el idioma en , aunque no tengo una sola carpeta? ¿Tal vez un en-carpeta es parte de una importación gradle? ¿Puedo excluirlos de alguna manera? En realidad, no sé de dónde proviene el en, ya que no lo uso en ninguna parte …

EJEMPLO

Sólo tengo values y values-de carpeta!

En values que tengo a continuación:

 <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="pause_alarms"> <item>Silent</item> <item>Vibrate</item> <item>Sound</item> <item>Vibrate + Sound</item> </string-array> </resources> 

En values-de tengo los siguientes:

 <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="pause_alarms"> <item>Leise</item> <item>Vibrieren</item> <item>Ton</item> <item>Vibrieren + Ton</item> </string-array> </resources> 

No sé de dónde viene el en, pero si defino el idioma de mis recursos del defecto en el archivo del xml como el siguiente

 <resources xmlns:tools="http://schemas.android.com/tools" tools:locale="en"> 

El error desaparece …

Probablemente, supongo, algunas importaciones gradle tienen la carpeta en

Tal vez la construcción se está confundiendo por la cadena de matriz? Es una buena práctica tener la matriz sólo en una carpeta de valores y definir las cadenas como recursos externos. Así que en lugar de su entrada, es mejor hacer esto:

 <string-array name="pause_alarms"> <item>@string/silent</item> <item>@string/vibrate</item> ... etc ... </string-array> 

Luego en res / values ​​/ strings.xml

 <string name="silent">Silent</string> <string name="vibrate">Vibrate</string> ... etc ... 

Y en res / values-de / strings.xml

 <string name="silent">Leise</string> <string name="vibrate">Vibrieren</string> ... etc ... 

De esta manera usted no tiene que mantener 2 arrays de cadenas actualizados y sincronizados en orden, sólo los valores de cadena sin procesar.

La cosa "en" es extraña – en los documentos para la localización, Google nunca menciona el inglés. Sólo hablan del idioma "predeterminado". Tiene sentido, ya que los valores son neutrales al lenguaje. Usted podría escribir el valor predeterminado en español y tener una carpeta values-en, no importa.

Otras cosas para comprobar – ¿está utilizando bibliotecas locales en la carpeta del proyecto? Tal vez tienen recursos en una carpeta de valores que se están recogiendo y confundiendo el sistema de construcción?

  • Sonar Android Lint sin problemas encontrados
  • Resolución de valores de recursos en reglas personalizadas de pelusa
  • Selector, lista de capas y forma / mapa de bits en el mismo xml
  • El soporte de diseño de derecha a izquierda está causando problemas de advertencia en el editor de xml
  • Cómo suprimir Android Lint advertencia en Gradle script
  • Lint falla en la compilación con el error de seguridad "WrongConstant: Incorrect constant". Anotación de IntDef
  • Cómo ignorar el atributo Ignorar InnerClasses
  • Marcador de posición de la cadena de Android diferentes idiomas
  • ¿Por qué estoy recibiendo una advertencia sin marcar?
  • ¿Qué significa este Android Lint: "Orientación errónea?"
  • "El espacio de nombres no está limitado" en Android Lint check
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.