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


NullPointerException en android.widget.AbsListView.contentFits (AbsListView.java:722)

Tengo una extraña NullPointerException . No hay apuntar en mi código. También sé que mi aplicación da este NullPointerException sólo en:

Fabricante: Sony Ericsson
Producto: MT11i_1256-3856
Versión de Android: 2.3.4

  • Servicio de Google Play - SupportMapFragment.getMap () devuelve siempre null
  • ¿Cómo realizar una llamada telefónica con intención en Android?
  • ¿Cómo puedo obtener el nombre del paquete del lanzador actual en android 2.3 y superior?
  • InputStream a JsonObject - GSON
  • ¿Cómo proporcionar animación al llamar a otra actividad en Android?
  • "Esperando que el dispositivo de destino se conecte" en Android Studio 2.3
  • ¿Algunas ideas?

     java.lang.NullPointerException at android.widget.AbsListView.contentFits(AbsListView.java:722) at android.widget.AbsListView.onTouchEvent(AbsListView.java:2430) at android.widget.ListView.onTouchEvent(ListView.java:3447) at android.view.View.dispatchTouchEvent(View.java:3952) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:995) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1034) at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1711) at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1145) at android.app.Activity.dispatchTouchEvent(Activity.java:2096) at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1695) at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2217) at android.view.ViewRoot.handleMessage(ViewRoot.java:1901) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:130) at android.app.ActivityThread.main(ActivityThread.java:3701) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624) at dalvik.system.NativeStart.main(Native Method) 

  • Cómo quitar el icono del cajón de navegación
  • Fragmento ya añadido. Apoyo lib
  • Alinear el botón derecho en LinearLayout horizontal
  • Cuando se utiliza AlertDialog.Builder con EditText, el Soft Keyboard no aparece
  • Calendario de Android: cómo escribir el adaptador de sincronización para el calendario INSERT
  • Android backup / restore: cómo hacer una copia de seguridad de una base de datos interna?
  • One Solution collect form web for “NullPointerException en android.widget.AbsListView.contentFits (AbsListView.java:722)”

    Tengo muchas excepciones similares en nuestras aplicaciones. Hice algunas investigaciones en el código fuente del sistema operativo Android, y llegó a una conclusión – esto es un error de Android OS Gingerbread y por debajo, y se ha solucionado en Ice Cream Sandwich.

    Si desea más detalles, consulte el código fuente del método AbsListView.contentFits en el árbol de origen de Gingerbread:

     private boolean contentFits() { final int childCount = getChildCount(); if (childCount != mItemCount) { return false; } return getChildAt(0).getTop() >= 0 && getChildAt(childCount - 1).getBottom() <= mBottom; } 

    Es obvio que este método arrojará NullPointerException si se llama a una lista vacía, porque getChildAt(0) devolverá NULL. Esto se corrigió en el árbol de origen ICS

     private boolean contentFits() { final int childCount = getChildCount(); if (childCount == 0) return true; if (childCount != mItemCount) return false; return getChildAt(0).getTop() >= mListPadding.top && getChildAt(childCount - 1).getBottom() <= getHeight() - mListPadding.bottom; } 

    Como puede ver, hay un cheque para (childCount == 0) .

    En cuanto a una solución para este problema, puede declarar su propia clase. MyListView extends ListView , reemplaza el método onTouchEvent y la llamada envolvente a super.onTouchEvent() con un bloque try-catch. Por supuesto, necesitarás usar tu clase ListView personalizada en todos los lugares de tu aplicación.

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