problemas con Choreographer??

5 views
Skip to first unread message

neon2004

unread,
Mar 9, 2016, 4:32:06 AM3/9/16
to desarrolladores-android
Hola tengo el siguiente error, que aunque pone que me estoy saliendo del indice de un array, no se realmente donde ni que pasa.

03-02 10:01:23.892: E/AndroidRuntime(27708): FATAL EXCEPTION: main
03-02 10:01:23.892: E/AndroidRuntime(27708): Process: com.telynet.fain, PID: 27708
03-02 10:01:23.892: E/AndroidRuntime(27708): java.lang.IndexOutOfBoundsException: Invalid index 6, size is 5
03-02 10:01:23.892: E/AndroidRuntime(27708): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
03-02 10:01:23.892: E/AndroidRuntime(27708): at java.util.Arrays$ArrayList.get(Arrays.java:66)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.ArrayAdapter.getItem(ArrayAdapter.java:337)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:390)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.Spinner.makeView(Spinner.java:617)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.Spinner.layout(Spinner.java:565)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.Spinner.onLayout(Spinner.java:524)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.View.layout(View.java:15903)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewGroup.layout(ViewGroup.java:4932)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1692)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1534)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.onLayout(LinearLayout.java:1443)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.View.layout(View.java:15903)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewGroup.layout(ViewGroup.java:4932)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1692)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1534)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.onLayout(LinearLayout.java:1443)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.View.layout(View.java:15903)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewGroup.layout(ViewGroup.java:4932)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1692)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1534)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.onLayout(LinearLayout.java:1443)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.View.layout(View.java:15903)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewGroup.layout(ViewGroup.java:4932)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1692)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1534)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.onLayout(LinearLayout.java:1443)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.View.layout(View.java:15903)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewGroup.layout(ViewGroup.java:4932)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1692)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1534)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.onLayout(LinearLayout.java:1443)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.View.layout(View.java:15903)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewGroup.layout(ViewGroup.java:4932)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1692)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1534)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.onLayout(LinearLayout.java:1443)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.View.layout(View.java:15903)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewGroup.layout(ViewGroup.java:4932)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1692)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1534)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.LinearLayout.onLayout(LinearLayout.java:1443)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.View.layout(View.java:15903)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewGroup.layout(ViewGroup.java:4932)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.View.layout(View.java:15903)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewGroup.layout(ViewGroup.java:4932)
03-02 10:01:23.892: E/AndroidRuntime(27708): at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:464)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.View.layout(View.java:15903)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewGroup.layout(ViewGroup.java:4932)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.View.layout(View.java:15903)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewGroup.layout(ViewGroup.java:4932)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2418)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2133)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1297)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6773)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:813)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.Choreographer.doCallbacks(Choreographer.java:613)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.Choreographer.doFrame(Choreographer.java:583)
03-02 10:01:23.892: E/AndroidRuntime(27708): at android.view.Choreographer$FrameDisplayEventR

Tengo una activity donde muestro un listado de registros y al hacer clic en un botón para filtrar, dentro de la misma activity muestro u oculto unos elementos u otros para mostrar estos filtros o la lista de resultados.

El caso es que cuando le doy la primera vez, muestra los filtros bien, pero si selecciono uno en concreto y hago una serie de acciones (grabar en BD, leer registros, etc), cuando vuelvo a mostrar de nuevo el listado, si le doy al botón para que me muestre los filtros me peta la app dando este error, que no se por donde cogerlo.

Lo único que se hace como decía antes al darle al botón de filtros es ocultar o mostrar diferentes elementos o layout.
He revisado el valor de los spinner y demás y no parece haber problema con ellos.

En cuanto termino de mostrar y ocultar los diferentes elementos, en el debug se va a este metodo, que supongo que es interno de android y es donde falla.

Este metodo esta dentro de la clase Choreographer

    private CallbackRecord obtainCallbackLocked(long dueTime, Object action, Object token) {
        CallbackRecord callback = mCallbackPool;   // EN CONCRETO AQUI ES DONDE DA PROBLEMAS
        if (callback == null) {
            callback = new CallbackRecord();
        } else {
            mCallbackPool = callback.next;
            callback.next = null;
        }
        callback.dueTime = dueTime;
        callback.action = action;
        callback.token = token;
        return callback;
    }

¿Tenéis alguna idea de ese error?

Un saludo, gracias

neon2004

unread,
Mar 9, 2016, 6:51:44 AM3/9/16
to desarrolladores-android
Me respondo yo mismo.

El problema estaba a la hora de volver a mostrar la pantalla con los filtros, le estaba dando a un spinner el valor seleccionado en otro, y se salia de indice como indica el error.
Lo que no se es porque en el log no marca ni la clase ni la linea donde se da ese error y en cambio me muestra todo ese tochaco de error que os puse arriba.

¿Alguien me podría explicar el error que muestra?

Un saludo y gracias
Reply all
Reply to author
Forward
0 new messages