Plural NotFoundException sólo en los teléfonos Huawei

He notado muchos informes de fallo de mi aplicación en la producción de teléfonos Huawei relacionados exactamente con el manejo de plurales. No hay otros teléfonos tienen este problema, pero sólo Huawei.

Todas las formas plurales existen y funcionan bien en otros dispositivos.

Parece que Huawei no puede manejar plurales en absoluto:

android.content.res.Resources$NotFoundException: Plural resource ID #0x7f060000 quantity=4 item=few at android.content.res.Resources.getQuantityText(Resources.java:290) at android.content.res.Resources.getQuantityString(Resources.java:397) ... android.content.res.Resources$NotFoundException: Plural resource ID #0x7f060000 quantity=6 item=many at android.content.res.Resources.getQuantityText(Resources.java:290) at android.content.res.XResources.getQuantityText(XResources.java:667) at android.content.res.Resources.getQuantityString(Resources.java:397) ... 

¿Alguien tiene este problema también?

He tenido este tipo de problema de acuerdo con los informes de análisis. El mismo problema – no tiene dispositivo de Huawei.

Esto sucedió en la lista de dispositivos: – Huawei G700-U10 Ascend G700 – Huawei G700-U20 Ascend G700 – Huawei G610-U20 Ascend

Stacktrace:

 android.content.res.Resources$NotFoundException: Plural resource ID #0x7f0d0000 quantity=5 item=many at android.content.res.Resources.getQuantityText(Resources.java:290) at android.content.res.Resources.getQuantityString(Resources.java:397) at com.sixthsensegames.client.android.app.activities.TournamentInfoActivity2$a$1.run(SourceFile:2233) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:153) at android.app.ActivityThread.main(ActivityThread.java:5341) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:929) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696) at dalvik.system.NativeStart.main(Native Method) 

Miré la clase de Recursos para aclarar el problema y encontrar cualquier SOLUCIÓN DE PROBLEMAS.

 public CharSequence getQuantityText(@PluralsRes int id, int quantity) throws NotFoundException { NativePluralRules rule = getPluralRule(); CharSequence res = mAssets.getResourceBagText(id, attrForQuantityCode(rule.quantityForInt(quantity))); if (res != null) { return res; } res = mAssets.getResourceBagText(id, ID_OTHER); if (res != null) { return res; } throw new NotFoundException("Plural resource ID #0x" + Integer.toHexString(id) + " quantity=" + quantity + " item=" + stringForQuantityCode(rule.quantityForInt(quantity))); } 

De acuerdo con este código si no se encuentra la regla plural para la cantidad dada, se dará el plural con la regla "OTRO" (antes de que tengamos la Excepción). He añadido "otro" elemento (regla) a la definición plural en strings.xml. Hecho la actualización de la aplicación y desde entonces no he recibido ningún informe de esta lista de dispositivos con este tipo de excepción.

En mi caso, estaba en idioma ruso:

 <plurals name="career_tournament_goal_wins_left"> <item quantity="one">осталась %1$s победа</item> <item quantity="few">осталось %1$s победы</item> <item quantity="many">осталось %1$s побед</item> <item quantity="other">осталось %1$s побед</item> <!-- for Huawei G700-u20 --> </plurals> 

No es la panacea, pero funciona al menos como solución.

Codificación feliz …

  • ¿Hay algo similar al sistema de recursos de Android en una escala menor?
  • Cómo utilizar recursos enteros dentro de recursos de cadena en android
  • ¿Cuál es la diferencia entre -anydpi y -nodpi?
  • Error: no se puede encontrar la variable de símbolo abc_ic_ab_back_mtrl_am_alpha
  • Android: ¿Por qué getDimension y getDimensionPixelSize devuelven lo mismo?
  • Obtener recursos de color como cadena
  • Android obtener la lista de archivos del paquete
  • ¿Por qué no funciona R.color.white donde colorea.WHITE?
  • Android.R.id.home no puede encontrar el símbolo
  • Cómo obtener FileInputStream a archivo en la carpeta de activos
  • ¿Cómo obtengo el identificador de recurso de una imagen si conozco su nombre?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.