Cómo corregir: android.app.RemoteServiceException: Notificación incorrecta enviada desde el paquete *: No se pudo crear el icono: StatusBarIcon

Estoy viendo la siguiente excepción en los registros de fallos:

android.app.RemoteServiceException: Bad notification posted from package com.my.package: Couldn't create icon: StatusBarIcon(pkg=com.my.package user=0 id=0x7f02015d level=0 visible=true num=0 ) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1456) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:146) at android.app.ActivityThread.main(ActivityThread.java:5487) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) at dalvik.system.NativeStart.main(Native Method) 

Estoy publicando mi notificación de un IntentService desde un conjunto de PendingIntent a través del AlarmManager usando el siguiente método. Todos los valores pasados ​​aquí son de los extras del paquete en PendingIntent / IntentService.

 /** * Notification * * @param c * @param intent * @param notificationId * @param title * @param message * @param largeIcon * @param smallIcon */ public static void showNotification(Context c, Intent intent, int notificationId, String title, String message, int largeIcon, int smallIcon) { PendingIntent detailsIntent = PendingIntent.getActivity(c, notificationId, intent, PendingIntent.FLAG_UPDATE_CURRENT); // BUILD NotificationCompat.Builder mNotifyBuilder = new NotificationCompat.Builder( c); // TITLE mNotifyBuilder.setContentTitle(title).setContentText(message); // ICONS mNotifyBuilder.setSmallIcon(smallIcon); if (Util.isAndroidOSAtLeast(Build.VERSION_CODES.HONEYCOMB)) { Bitmap large_icon_bmp = ((BitmapDrawable) c.getResources() .getDrawable(largeIcon)).getBitmap(); mNotifyBuilder.setLargeIcon(large_icon_bmp); } mNotifyBuilder.setContentIntent(detailsIntent); mNotifyBuilder.setVibrate(new long[] { 500, 1500 }); mNotifyBuilder.setTicker(message); mNotifyBuilder.setContentText(message); // NOTIFY NotificationManager nm = (NotificationManager) c .getSystemService(Context.NOTIFICATION_SERVICE); nm.notify(notificationId, mNotifyBuilder.build()); } 

De lo que he visto de otras respuestas – la excepción que estoy viendo sucede cuando setSmallIcon() no se llama correctamente.

He comprobado y comprobado que los ID de recursos que se pasan son correctos.

8 Solutions collect form web for “Cómo corregir: android.app.RemoteServiceException: Notificación incorrecta enviada desde el paquete *: No se pudo crear el icono: StatusBarIcon”

Lo que estaba sucediendo era, estaba incluyendo la referencia de número entero al icono en el paquete de PendingIntent, y ese número entero estaba siendo más tarde referenciado mientras se contabilizaba en el NotificationManager.

Entre la obtención de la referencia entera y la intención pendiente, la aplicación se actualizó y todas las referencias extraíbles cambiaron. El entero que se utiliza para hacer referencia a la correcta dibujable ahora se hace referencia a la incorrecta dibujable o ninguno en absoluto (ninguno en absoluto – causando este bloqueo)

Usando VectorXml dentro de su notificación se sabe que causa este problema. Utilizar png's

Android.app.RemoteServiceException: Notificación incorrecta enviada

Tuve el mismo problema, pero estaba resuelto. Mi problema es "archivo .xml" de la vista remota.

En mi archivo xml me agregaron una View entre el LinearLayout para divider.

 <View android:layout_width="match_parent" android:layout_height="1dp" android:id="@+id/view" android:background="#000000" /> 

El componente de View anterior que crea la excepción de notificación incorrecta. Esta razón de Excepción es sólo archivo xml de Remoteviews.

Después de quitar ese componente View, Mi código se ejecutó correctamente, sin ninguna excepción. Así que sentí que el cajón de Notification no aceptó ninguna opinión personalizada.

Por lo tanto, no dibuja nada como la vista anterior en el archivo .xml del objeto RemoteView .

En mi aplicación, este tipo de error ocurre sólo durante la actualización. Si el identificador de recursos cambia en la versión más reciente, Android RemoteView puede fallar al encontrar el recurso y desechar la RemoteServiceException . Si publica una tercera versión y no cambia la identificación del recurso, los errores pueden desaparecer sólo temporalmente .

Es posible reducir este tipo de errores editando res/values/public.xml y res/values/ids.xml . El compilador generará un identificador de recurso individual si el identificador de recurso no está en public.xml o ids.xml . Cuando cambie el nombre del recurso o añada algunos nuevos recursos, el identificador puede cambiar y algunos dispositivos pueden fallar al encontrarlo.

Así que el paso es como sigue:

  1. Decompile el archivo apk y en res/values encuentre los public.xml e ids.xml
  2. Encuentra todos los recursos relacionados con RemoteView en tu aplicación y cópialos (cadenas, dimen, drawable, layout, id, color …)
  3. Cree public.xml y ids.xml bajo res/values en su código fuente y pegue las líneas que acaba de copiar

Nota:

Gradle 1.3.0 y superiores ignoran el public.xml local. Para hacerlo funcionar, u necesidad de añadir algún script en su build.gradle

 afterEvaluate { for (variant in android.applicationVariants) { def scope = variant.getVariantData().getScope() String mergeTaskName = scope.getMergeResourcesTask().name def mergeTask = tasks.getByName(mergeTaskName) mergeTask.doLast { copy { int i=0 from(android.sourceSets.main.res.srcDirs) { include 'values/public.xml' rename 'public.xml', (i == 0? "public.xml": "public_${i}.xml") i++ } into(mergeTask.outputDir) } } } } 

Nota: Este script no admite proyectos de submódulos. Estoy tratando de arreglarlo.

Sincronizar el proyecto y limpiarlo, Archivo> Sincronizar entonces: Buildt> Clean Project

Espero que eso ayude a todos, Es trabajo para mi

Tuve el mismo problema cada vez que quería mostrar una notificación en Kitkat. Lo que causó el problema para mí es que he definido cada icono en xml (desde svg), el pequeño icono y el icono de acción también. Después de haberlos reemplazado con png-s el problema resuelto a mi lado.

Tuve el mismo problema cuando establecí una notificación en un paquete. Intenté esto y resolvió mi problema:

 builder.setLargeIcon(large_icon); builder.setSmallIcon(R.drawable.small_icon); 

Asegúrese de que setLargeIcon () ha sido invocado antes de setSmallIcon ().

Yo también tenía el mismo problema. El problema es con el icono que está utilizando, estaba usando android.R.drawable.stat_sys_download. Ir a drawables.xml y pegar esto.

 <resources> <item name="ic_start_download" type="drawable">@android:drawable/stat_sys_download</item> </resource> 

Y luego en su código

 builder.setSmallIcon(R.drawable.ic_start_download); 

Puedes probar otra imagen en lugar de esta imagen

  • El valor del recurso xml de entero de Android no cambia al cambiar entre retrato y paisaje
  • Cómo probar la integridad de string.xml
  • Dibujos extraídos de la carpeta de recursos erróneos en la rotación
  • ¿Es posible leer un archivo de texto sin referencia de contexto en un proyecto de biblioteca de Android?
  • Biblioteca a recursos de cifrado y descifrado
  • Falta el tipo de recurso XML para PercentRelativeLayout Porcentaje?
  • Android: obtener recursos $ NotFoundException para abc_ic_ab_back_material
  • Definición de attrs personalizados
  • Cómo obtener la cadena de diferentes locales en Android?
  • Intentando crear un proyecto después de agregar la carpeta values-21 y está mostrando error
  • ¿Cómo puedo obtener un contenido de recursos desde un contexto estático?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.