¿Por qué Android 4.2 intentará obtener recursos de drawable-xhdpi-v4

Recientemente, recibí una gran cantidad de informes de fallos

android.content.res.Resources$NotFoundException: File res/drawable-xhdpi-v4/flag_au.png from drawable resource ID #0x7f0200bc at android.content.res.Resources.loadDrawable(Resources.java:1970) at android.content.res.Resources.getDrawable(Resources.java:660) 

Me siento extraño que, como los informes de accidente son de Android 4.2 , dispositivo @ Tab7QC-16

Tengo recurso en xhdpi . Espero que Android 4.2 debe recoger recursos de xhdpi .

No pienso proporcionar la carpeta dibujable . Como, colocaré la imagen clasificada mdpi en ella. Cuando el dispositivo de destino se escala hasta xhdpi, no se verá bien.

Creo que puedo "resolver" el accidente, por la carpeta de clonación xhdpi a xhdpi-v4.

Pero, la pregunta es, ¿por qué Android 4 intentará obtener recursos de drawable-xhdpi-v4?

Como lo veo, los recursos de carpetas funcionan de la manera exactamente opuesta.

El calificador drawable-v4 , por ejemplo, se refiere al API nivel 4 y superior , no inferior . Así que si tiene estas carpetas:

  • Extraíble
  • Drawable-v4
  • Drawable-v15

La carpeta drawable-v15 representará API 15-23 (hasta ahora), drawable-v4 para API 4-14 y drawable para niveles de API que no obtengan correspondencia con carpetas anteriores (por lo tanto API 1-3).

Probablemente debería reformatear sus carpetas en este sentido.

Esta es la página de referencia en la documentación oficial. Por alguna razón en este momento sólo puedo cargarlo en chino (creo), pero mirando el caché de google parece apoyar mi opinión.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.