item.getIcon () SIEMPRE NULL

Me topé con este tutorial sobre las notificaciones en la aplicación en el ActionBar.

http://www.jmhend.me/layerdrawable-menuitems

Todo lo que obtengo es NullPointer dentro de android.graphics.drawable.LayerDrawable al llamar a item.getIcon () en la línea mencionada en este registro: http://pastebin.com/udKPtUzB

Creo que podría tener algo que ver con la versión de la API de Android, pero no puedo encontrar una solución, ya que no puedo averiguar lo que está volviendo "nulo".

Debo mencionar esto no sucede en el inicio de la aplicación. Sólo sucede cuando intento actualizar el dibujable para mostrar un recuento.

He llegado a averiguar esto se debe a item.getIcon() que debe devolver el Drawable del elemento de menú. Pero siempre es nulo durante el tiempo de ejecución. (no inicio, sin embargo)

 public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater(); inflater.inflate(R.menu.main, menu); menu.findItem(R.id.action_list).setIcon( new IconDrawable(this, IconValue.fa_list).colorRes( android.R.color.black).actionBarSize() ); com.actionbarsherlock.view.MenuItem item = menu.findItem(R.id.action_users); LayerDrawable icon; if (item.getIcon() != null) { icon = (LayerDrawable) item.getIcon(); // Update LayerDrawable's BadgeDrawable setBadgeCount(MainActivity.this, icon, privateMsgNotificationCount); } else { } return true; } 

NPE en if(item.getIcon()!=null) ahora. La condición nunca se prueba porque getIcon () causa NPE como en el registro de pastebin mencionado arriba.

NOTA: Después de 12 horas de pruebas todo lo que puedo decir con certeza es que siempre que setIcon () del MenuItem como un LayerDrawable, getIcon () es null. Si me setIcon () a cualquier otro tipo de drawable el sistema recordará el MenuItem es dibujable y getIcon no es nulo. Estoy confundido…

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