Java.lang.IllegalArgumentException: El observador es nulo

Un usuario de una de mis aplicaciones informó de este error. Estoy confundido en cuanto a lo que significa una manera de arreglarlo. Después de un poco de google … todavía no hay suerte. ¿Alguien ha visto esto antes o sabe cómo solucionarlo?

java.lang.IllegalArgumentException: The observer is null. at android.database.Observable.unregisterObserver(Observable.java:59) at android.widget.BaseAdapter.unregisterDataSetObserver(BaseAdapter.java:42) at android.widget.HeaderViewListAdapter.unregisterDataSetObserver(HeaderViewListAdapter.java:256) at android.widget.AbsListView.onDetachedFromWindow(AbsListView.java:2309) at android.view.View.dispatchDetachedFromWindow(View.java:8197) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1968) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1966) at android.view.ViewGroup.removeViewInternal(ViewGroup.java:3257) at android.view.ViewGroup.removeViewInternal(ViewGroup.java:3237) at android.view.ViewGroup.removeView(ViewGroup.java:3185) at com.aheudev.a.slickdeals.adapters.DealPageAdapter.destroyItem(DealPageAdapter.java:174) at android.support.v4.view.ViewPager.populate(ViewPager.java:415) at android.support.v4.view.ViewPager.completeScroll(ViewPager.java:696) at android.support.v4.view.ViewPager.computeScroll(ViewPager.java:668) at android.view.ViewGroup.drawChild(ViewGroup.java:2434) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2189) at android.view.View.draw(View.java:9282) at android.view.ViewGroup.drawChild(ViewGroup.java:2584) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2189) at android.view.ViewGroup.drawChild(ViewGroup.java:2582) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2189) at android.view.ViewGroup.drawChild(ViewGroup.java:2582) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2189) at android.view.View.draw(View.java:9282) at android.widget.FrameLayout.draw(FrameLayout.java:419) at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1923) at android.view.ViewRoot.draw(ViewRoot.java:1695) at android.view.ViewRoot.performTraversals(ViewRoot.java:1410) at android.view.ViewRoot.handleMessage(ViewRoot.java:2040) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:132) at android.app.ActivityThread.main(ActivityThread.java:4123) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:491) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) at dalvik.system.NativeStart.main(Native Method) 

Y vino de esta función en mi PagerAdapter:

 @Override public void destroyItem(View collection, int position, Object view) { ((ViewPager) collection).removeView((View) view); } 

Yo también estaba teniendo el mismo problema y parece que unregisterDataSetObserver en su DealPageAdapter se llama dos veces. Para corregir el problema sobrescribí el unregisterDataSetObserver en mi adaptador como tal

 @Override public void unregisterDataSetObserver(DataSetObserver observer) { if (observer != null) { super.unregisterDataSetObserver(observer); } } 

¡Espero que esto ayude!

Hay algunas personas que han tenido su problema aquí y aquí

Al mirar la pila de llamadas, parece que su "vista" registró un observador que ahora está tratando de anular su registro. Ese observador ya no está allí aunque se espera. De ahí el error. Esto puede ser un error o puede estar relacionado con cómo estás haciendo las cosas.

Tratar de mirar a través de la fuente de Android para ver si puede rastrear.

Buena suerte.

Una solución alternativa consiste en ajustar el ListView y capturar la excepción. Esta solución funcionó para mí, y todavía no he encontrado ningún efecto secundario.

     Public class CustumListView extends ListView { 

  Public CustumListView (Context context, AttributeSet attrs) {
     Super (contexto, attrs);
   }

   @Anular
   Protected void onDetachedFromWindow () {
     tratar {
       Super.onDetachedFromWindow ();
     } Catch (IllegalArgumentException iae) {

     }
   }
 }

  • Notificación de Android con RemoteViews: actividad asociada con el diseño de RemoteViews
  • Extraer dirección de cadena - Equivalente a NSDataDetector en iOS
  • EXCEPCIÓN FATAL: main java.lang.NoClassDefFoundError: com.google.analytics.tracking.android.EasyTracker
  • Número de línea de devolución de Android ProGuard
  • InflateException: Línea de archivo XML binario # 22: Error al inflar la clase <unknown>
  • Transmisión de datos de un fragmento en una actividad de otra actividad
  • Bibliotecas puras de codificación / decodificación de vídeo java
  • (A) Smack devuelve el error "service-unavailable (503)" en login ()
  • Android: No se pudo encontrar el método
  • Codificador y decodificador Base64
  • Android SimpleDateFormat, cómo usarlo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.