Stackoverflow: ¿Causado por vistas anidadas?

Estoy teniendo un accidente cuando refresco una vista dentro de un SlidingTray (SlidingDrawer personalizado que viene desde la parte superior).

No estoy seguro de lo que lo causa … pero mi primera suposición es que es debido al número de diseños anidados …

¿Cuál es el número máximo de diseños anidados?

¿Es específico del dispositivo, cómo puedo estar seguro de si esa es la causa?

Si no lo es, cualquiera de estas cosas lo está causando .. ¿cuál es?

El stacktrace:

E/AndroidRuntime( 2199): FATAL EXCEPTION: main E/AndroidRuntime( 2199): java.lang.StackOverflowError E/AndroidRuntime( 2199): at android.graphics.Paint.measureText(Paint.java:1057) E/AndroidRuntime( 2199): at android.text.Styled.drawDirectionalRun(Styled.java:267) E/AndroidRuntime( 2199): at android.text.Styled.measureText(Styled.java:430) E/AndroidRuntime( 2199): at android.text.Layout.measureText(Layout.java:1655) E/AndroidRuntime( 2199): at android.text.Layout.getLineMax(Layout.java:689) E/AndroidRuntime( 2199): at android.text.Layout.draw(Layout.java:340) E/AndroidRuntime( 2199): at android.text.BoringLayout.draw(BoringLayout.java:365) E/AndroidRuntime( 2199): at android.widget.TextView.onDraw(TextView.java:4168) E/AndroidRuntime( 2199): at android.view.View.draw(View.java:6880) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.View.draw(View.java:6883) E/AndroidRuntime( 2199): at android.widget.FrameLayout.draw(FrameLayout.java:357) E/AndroidRuntime( 2199): at android.widget.ScrollView.draw(ScrollView.java:1409) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.View.draw(View.java:6883) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.View.buildDrawingCache(View.java:6640) E/AndroidRuntime( 2199): at android.view.View.getDrawingCache(View.java:6428) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1571) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1392) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.View.draw(View.java:6883) E/AndroidRuntime( 2199): at android.widget.FrameLayout.draw(FrameLayout.java:357) E/AndroidRuntime( 2199): at android.widget.ScrollView.draw(ScrollView.java:1409) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.View.draw(View.java:6986) E/AndroidRuntime( 2199): at android.widget.FrameLayout.draw(FrameLayout.java:357) E/AndroidRuntime( 2199): at android.widget.HorizontalScrollView.draw(HorizontalScrollView.java:1409) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.View.draw(View.java:6883) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.View.draw(View.java:6883) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) E/AndroidRuntime( 2199): at com.vodafone.onm.components.SlidingTray.dispatchDraw(SlidingTray.java:426) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.View.draw(View.java:6883) E/AndroidRuntime( 2199): at android.widget.FrameLayout.draw(FrameLayout.java:357) E/AndroidRuntime( 2199): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) E/AndroidRuntime( 2199): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) E/AndroidRuntime( 2199): at android.view.View.draw(View.java:6883) E/AndroidRuntime( 2199): at android.widget.FrameLayout.draw(FrameLayout.java:357) E/AndroidRuntime( 2199): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java) 

UPDATE : Instantánea del Visor de Jerarquía

  • Http://d.pr/kXnp

.

Algunos piensan que creo que están relacionados: http://www.mail-archive.com/android-developers@googlegroups.com/msg48036.html

One Solution collect form web for “Stackoverflow: ¿Causado por vistas anidadas?”

¿Cuál es el número máximo de diseños anidados?

No hay un valor específico. Se queda sin espacio en la pila cuando se queda sin espacio en la pila, y eso dependerá de lo que esté haciendo. El hilo principal de la aplicación tiene una pila de 8KB, la última vez que escuché.

Dicho esto, si la vista de jerarquía muestra una profundidad de 10 o más (raíz a la hoja más profunda), empiezo a ponerme nerviosa, y para el 15 es probable que comience a correr con excepciones. Su imagen, que es casi ilegible, parece tener una profundidad sustancialmente mayor que eso.

Usted parece tener un número de capas desperdiciadas. Si tiene una capa en la vista de jerarquía, en la ruta crítica, que tiene un padre y un hijo, que es un candidato principal para ser eliminado, ya que puede no agregar ningún valor. Usted tiene al menos 5 de estos candidatos. Incluso la limpieza de todo eso hasta puede no ser suficiente, pero es un punto de partida.

  • Esta visión no está restringida
  • Android: cómo agregar una forma de triángulo en la esquina derecha del botón superior
  • Problemas de diseño relacionados con el soporte de varias pantallas
  • No hay espacio suficiente para mostrar el anuncio (AdMob)
  • La característica "include" de diseño no admite la propiedad layout_gravity?
  • Cómo forzar un diseño completo ¿Ver actualizar?
  • Efecto del carrusel de Android con diseños
  • ¿Cómo puedo convertir un diseño PSD a Android xml?
  • ImageView adjustViewBounds no funciona con Disposición relativa
  • Android consigue la altura y el ancho de la distribución en un fragmento
  • Mi clase derivada de SQLiteOpenHelper es enorme
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.