KitKat specific- android.content.res.Resources $ NotFoundException: Archivo res / drawable / list_selector_white.xml de ID de recurso extraíble
Intenté la respuesta aquí , pero no funcionó para mí. Estoy utilizando un xml como fondo y obtención de excepción – Resources$NotFoundException: File res/drawable/list_selector_white.xml from drawable resource ID
. La aplicación se bloquea al iniciar.
La parte extraña es que está funcionando bien en los dispositivos que ejecutan Lollypop. En OS <= KitKat, este problema está reproduciendo.
- ¿Cómo puedo poner utf-16 caracteres en Android cadena de recursos?
- "El inicio de la etiqueta no está cerrado" al comentar dentro de la etiqueta de inicio y fin del elemento XML
- Notificación personalizada de Android que no muestra cambios de código
- ¿Cómo activar el botón "Compartir" en la aplicación Android?
- Cómo convertir el objeto de cursor en XML o JSON en android
XML que se está inflando en el fragmento:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/list_selector_white" > ....Other views here....
list_selector_white.xml
<!-- Selector style for listrow --> <item android:drawable="@drawable/gradient_bg_white" android:state_pressed="false" android:state_selected="false"/> <item android:drawable="@drawable/gradient_bg_hover" android:state_pressed="true"/> <item android:drawable="@drawable/gradient_bg_hover" android:state_pressed="false" android:state_selected="true"/>
gradient_bg_hover
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- Gradient BgColor for listrow Selected --> <gradient android:startColor="?attr/listViewRow" android:centerColor="?attr/listViewRow" android:endColor="?attr/listViewRow" android:angle="270" /> </shape>
Logcat:
E/AndroidRuntime( 3879): android.view.InflateException: Binary XML file line #2: Error inflating class <unknown> E/AndroidRuntime( 3879): at android.view.LayoutInflater.createView(LayoutInflater.java:620) E/AndroidRuntime( 3879): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) E/AndroidRuntime( 3879): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) E/AndroidRuntime( 3879): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) E/AndroidRuntime( 3879): at android.view.LayoutInflater.inflate(LayoutInflater.java:469) E/AndroidRuntime( 3879): at android.view.LayoutInflater.inflate(LayoutInflater.java:397) E/AndroidRuntime( 3879): at android.view.LayoutInflater.inflate(LayoutInflater.java:353) E/AndroidRuntime( 3879): at jsoup.LazyAdapterDoubleList.getView(LazyAdapterDoubleList.java:53) E/AndroidRuntime( 3879): at android.widget.AbsListView.obtainView(AbsListView.java:2263) E/AndroidRuntime( 3879): at android.widget.ListView.measureHeightOfChildren(ListView.java:1263) E/AndroidRuntime( 3879): at android.widget.ListView.onMeasure(ListView.java:1175) E/AndroidRuntime( 3879): at android.view.View.measure(View.java:16497) E/AndroidRuntime( 3879): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719) E/AndroidRuntime( 3879): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455) E/AndroidRuntime( 3879): at android.view.View.measure(View.java:16497) E/AndroidRuntime( 3879): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719) E/AndroidRuntime( 3879): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455) E/AndroidRuntime( 3879): at android.view.View.measure(View.java:16497) E/AndroidRuntime( 3879): at android.support.v4.widget.SwipeRefreshLayout.onMeasure(SwipeRefreshLayout.java:577) E/AndroidRuntime( 3879): at android.view.View.measure(View.java:16497) E/AndroidRuntime( 3879): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) E/AndroidRuntime( 3879): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) E/AndroidRuntime( 3879): at android.view.View.measure(View.java:16497) E/AndroidRuntime( 3879): at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:868) E/AndroidRuntime( 3879): at android.view.View.measure(View.java:16497) E/AndroidRuntime( 3879): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) E/AndroidRuntime( 3879): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) E/AndroidRuntime( 3879): at android.view.View.measure(View.java:16497) E/AndroidRuntime( 3879): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) E/AndroidRuntime( 3879): at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327) E/AndroidRuntime( 3879): at android.view.View.measure(View.java:16497) E/AndroidRuntime( 3879): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) E/AndroidRuntime( 3879): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) E/AndroidRuntime( 3879): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291) E/AndroidRuntime( 3879): at android.view.View.measure(View.java:16497) E/AndroidRuntime( 3879): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1916) E/AndroidRuntime( 3879): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1113) E/AndroidRuntime( 3879): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1295) E/AndroidRuntime( 3879): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000) E/AndroidRuntime( 3879): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670) E/AndroidRuntime( 3879): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) E/AndroidRuntime( 3879): at android.view.Choreographer.doCallbacks(Choreographer.java:574) E/AndroidRuntime( 3879): at android.view.Choreographer.doFrame(Choreographer.java:544) E/AndroidRuntime( 3879): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) E/AndroidRuntime( 3879): at android.os.Handler.handleCallback(Handler.java:733) E/AndroidRuntime( 3879): at android.os.Handler.dispatchMessage(Handler.java:95) E/AndroidRuntime( 3879): at android.os.Looper.loop(Looper.java:136) E/AndroidRuntime( 3879): at android.app.ActivityThread.main(ActivityThread.java:5017) E/AndroidRuntime( 3879): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime( 3879): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) E/AndroidRuntime( 3879): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) E/AndroidRuntime( 3879): Caused by: java.lang.reflect.InvocationTargetException E/AndroidRuntime( 3879): at java.lang.reflect.Constructor.newInstance(Native Method) E/AndroidRuntime( 3879): at android.view.LayoutInflater.createView(LayoutInflater.java:594) E/AndroidRuntime( 3879): ... 50 more E/AndroidRuntime( 3879): Caused by: android.content.res.Resources$NotFoundException: File res/drawable/list_selector_white.xml from drawable resource ID #0x7f02006a E/AndroidRuntime( 3879): at android.content.res.Resources.loadDrawable(Resources.java:2096) E/AndroidRuntime( 3879): at android.content.res.TypedArray.getDrawable(TypedArray.java:602) E/AndroidRuntime( 3879): at android.view.View.<init>(View.jav W/ActivityManager( 589): Force finishing activity free.programming.programming/.MainActivity W/ActivityManager( 589): Activity pause timeout for ActivityRecord{655864a8 u0 free.programming.programming/.MainActivity t49 f}
Cualquier pista sobre cómo solucionarlo?
[Editar]
Sospecho que usar attr
en drawable está causando problemas. Inicialmente, estaba usando simple @color/...
y todo funcionaba bien.
- Cómo seleccionar aleatoriamente de una lista de string-array
- ¿Cómo se calcula el tiempo del rezo musulmán en una aplicación androide?
- Cómo inflar RelativeLayout de XML
- ListView.addFooterView () no funciona si no hay elementos en listview
- Android: textColor del botón deshabilitado en el selector no se muestra?
- Xml spring para android con gradle
- Intención de Fragmento a Actividad
- Importa datos de JSON o XML feed y crea una lista en Android
Yo tuve el mismo problema. El problema es que usted está utilizando ?attr/
en su drawable. Reemplácela con un @color
o @drawable
y debería desaparecer. Esto desafortunadamente significa que usted tiene que agrupar un dibujable para cada uno de sus temas, es mucho más limpio en piruleta.
Echa un vistazo a este compromiso de la mía en el proyecto que estoy trabajando, fue para resolver exactamente este problema.
Puedes crear una carpeta drawable-v21
y poner un drawable debajo de ella en esperanzas de un buen momento cuando puedes soportar v21 + pero he elegido ir a la otra ruta y agrupar diferentes recursos de color (algo que puedes ver en la rama principal, I tienen colores verdes del trullo y del defecto).
Finalmente pude arreglar el problema. Voy a publicar la respuesta para que pueda ayudar a los futuros lectores.
El problema es que no podemos dar valores attr a item
y gradient
. Conseguí el problema fijado teniendo diversos archivos del xml para los colores.
Terminé usando diferentes versiones de list_selector_white_1 y _2.xml para:
<!-- Selector style for listrow --> <item android:drawable="@drawable/gradient_bg_white_1" android:state_pressed="false" android:state_selected="false"/> <item android:drawable="@drawable/gradient_bg_hover_1" android:state_pressed="true"/> <item android:drawable="@drawable/gradient_bg_hover_1" android:state_pressed="false" android:state_selected="true"/>
Del mismo modo, cambié gradient_bg_hover y gradient_bg_white a diferentes versiones.
Finalmente, creé un atributo list_selector con formato integer
y lo usé en el fragmento xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="?attr/list_selector" > ....Other views here....
Estoy esperando el momento en que puedo soportar el nivel API> = 21 en mi aplicación, con el fin de eliminar todos estos hacks.
Básicamente no, es un error que se arregló en Lollipop . La sugerencia (hasta que pueda minSdkVersion=21
) es crear un archivo XML diferente dibujable para cada color diferente que usted necesita (y tener que como un atributo del tema, supongo).
La pregunta, las respuestas y los comentarios duplicados discuten este insecto: ¿Cómo hacer referencia al atributo del color en drawable?
- android: crear el oyente del tecleo programmatically con la clase anónima
- ¿Por qué mi aplicación no es compatible con nexus 7 en Google Play?