Cómo eliminar fácilmente los recursos de localización innecesarios de bibliotecas añadidas en la versión APK

Mi aplicación es bastante simple y no necesita mucha localización.

Suministro el idioma por defecto (en inglés) y alemán – esto es todo lo que siempre quiero y siempre la oferta, ya que la aplicación está completamente centrado en Alemania.

Como he añadido recientemente a la biblioteca de Google Play Services, me enfrento al problema de que 56 (!!!) idiomas adicionales se hayan añadido a mi aplicación, como me dice la Google Play Store. La razón es: la biblioteca viene con muchos más recursos de lenguaje que NO quiero en mi aplicación. Simplemente no tiene sentido si aparece un cuadro de diálogo de Google Play en francés cuando el resto era sólo inglés / alemán.

No quiero eliminar manualmente recursos del proyecto de biblioteca, esto es tedioso y propenso a errores. Además, tal vez tendré otra aplicación dependiendo de la misma biblioteca y allí quiero más idiomas?

Entonces, ¿cómo puedo lograr esto?

¡Gracias!

Entiendo tu problema, la solución fácil es quitar todos los idiomas adicionales de la biblioteca, pero debes hacerlo con cada nueva versión de Google Play Services y, como dices, si necesitas otros idiomas en otras aplicaciones, T ser la mejor opción.

En su lugar, intenta forzar a tu aplicación a usar el alemán o el inglés como valor predeterminado:

Debe agregar este código en su clase de aplicación

@Override public void onCreate() { super.onCreate(); avoidOtherLanguages(); // your code here } @Override public void onConfigurationChanged() { super.onConfigurationChanged(); avoidOtherLanguages(); // your code here } public void avoidOtherLanguages() { if (!Locale.getDefault().getLanguage().equals(Locale.GERMAN.getLanguage())) { // when other than german, use english final Configuration configuration = getResources().getConfiguration(); configuration.locale = Locale.ENGLISH; getResources().updateConfiguration( configuration, getResources().getDisplayMetrics() ); } } 

¡Espero que te funcione!

** ACTUALIZADO: SOLUCIÓN **

¡Hola hago una solución después de mucho google! Si está utilizando gradle como sistema de compilación puede hacerlo en su archivo build.gradle :

  ..... defaultConfig { minSdkVersion 15 targetSdkVersion 22 versionCode 75 versionName "1.0.0" resConfigs "en", "de" } ... 

Utilice resConfig para indicar gradle que sólo está utilizando estas configuraciones locales, todos los demás idiomas en sus bibliotecas se quitarán del paquete APK!

¡Déjeme saber si eso trabajó para usted!

  • Cómo averiguar qué recursos no se utilizan en una aplicación para Android
  • Android: carga la fuente personalizada en la tarjeta SD
  • Android: referencia a recursos en xml personalizado
  • Cómo leer el archivo de res / raw por nombre
  • Android: ¿acceder a un drawable desde una carpeta específica -dpi?
  • Si se proporciona un recurso dibujable para ldpi, mdpi, hdpi, xhdpi, este dibujable no necesita proporcionarse para nodpi?
  • ¿Por qué Android está buscando los recursos QVGA en el orden incorrecto mdpi> hdpi> ldpi?
  • Problemas con minSdkVersion 1.5
  • Tamaños de imagen de Android
  • Cómo encontrar View from string en vez de R.id
  • No se encontró ningún recurso que coincida con el nombre dado: attr 'android: actionModeShareDrawable'
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.