FCM - 如何修复android.app.RemoteServiceException:从包中发布错误通知无法展开RemoteViews:StatusBarNotification

时间:2018-01-06 05:09:36

标签: android firebase firebase-cloud-messaging

我看到1000条与通知相关的崩溃报告,没有可行的方法来调试或检查Firebase云消息传递中的通知的应用代码

Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package com.appbootup.ipo.news: Couldn't expand RemoteViews for: StatusBarNotification(pkg=com.appbootup.ipo.news user=UserHandle{0} id=2 tag=IPO-SME score=10: Notification(pri=1 contentView=com.appbootup.ipo.news/0x1090064 vibrate=null sound=null defaults=0x0 flags=0x10 kind=[null] 2 actions))
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
   at android.os.Handler.dispatchMessage(Handler.java:110)
   at android.os.Looper.loop(Looper.java:193)
   at android.app.ActivityThread.main(ActivityThread.java:5323)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
   at dalvik.system.NativeStart.main(NativeStart.java)

不涉及RemoteViews,因为我没有自定义远程视图代码。 我正在使用默认通知,并且没有与RemoteViews相关的代码notificationView = new RemoteViews()

final Notification.Builder builder = new Notification.Builder(context)
            .setContentTitle(mNotificationTitle)
            .setContentText(mNotificationText)
            .setStyle(new Notification.BigTextStyle().bigText(boldmNotificationLongText))
            .setLargeIcon(largeIcon)
            .setSmallIcon(mNotificationSmallIcon)
            .setPriority(mPriority)
            .setTicker(mNotificationTicker)
            .setContentIntent(pendingIntentView)
            .setAutoCancel(true)
            .addAction(R.drawable.ic_menu_share, SHARE_ACTION, pendingIntentShare)
            .addAction(R.drawable.ic_arrow_forward_black_24dp, VIEW_ACTION, pendingIntentView);

更多参考资料 -

  1. https://github.com/firebase/quickstart-android/issues/394

  2. https://github.com/OneSignal/OneSignal-Android-SDK/issues/263

  3. 只有Kitkat设备大量投放 - Android操作系统版本:4.4.4,4.4.2,4.2.2,4.0.4

1 个答案:

答案 0 :(得分:2)

通过更改通知使用的可绘制来修复。

.addAction(R.drawable.ic_forward_black_24dp, VIEW_ACTION, pendingIntentView);

R.drawable.ic_forward_black_24dp 不再使用xml文件(Vector Asset),而是使用png文件(Image Asset)。