Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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 …

  • Poste HTTP seguro en Android
  • ¿Cómo obtengo el _count en mi proveedor de contenido?
  • Android L - Botón de acción flotante (FAB)
  • ¿Cómo manejar el evento click en Listview en android?
  • Evitar que el usuario rechace la notificación
  • Reiniciar la máquina con Android
  • ¿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

  • Visualización de imágenes GIF mediante WebView
  • Android - Nuevo estilo de calendario DatePicker y TimePicker
  • Encabezado RecyclerView bajo elementos de Android
  • Leer el archivo As String
  • Dos diseños diferentes para una actividad
  • Android: intercepte y transmita todos los eventos táctiles
  • 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.

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