Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fatal Exception: android.app.RemoteServiceException .... Couldn't create icon: StatusBarIcon

I have this exception posted on Crashlytics hundreds of times from my live users, And I couldn't reproduce it once on 5 different devices

Crash log

Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package com.mypackage: Couldn't create icon: StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.mypackage id=0x7f08009e) visible user=0 ) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2046) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:7406) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

The only place where I post notifications is only from FirebaseMessagingService And here is the code for posting the notifications

private fun sendNotification(remoteMessage: RemoteMessage) {
    val intent = Intent(this, MainActivity::class.java)
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
    val pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
            PendingIntent.FLAG_ONE_SHOT)
    val defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
    val notificationBuilder = NotificationCompat.Builder(this, "")
            .setContentText(remoteMessage.notification?.body)
            .setContentTitle(remoteMessage.notification?.title)
            .setAutoCancel(true)
            .setSmallIcon(R.drawable.ic_notification)
            .setSound(defaultSoundUri)
            .setColor(ContextCompat.getColor(this, R.color.blue_accent_color))
            .setContentIntent(pendingIntent)
    val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    notificationManager.notify(0 /* ID of notification */, notificationBuilder.build())
}

Things to mentions: 1- The drawable is not vector drawable, it is a png with transparent background found in (mdpi, hdpi, xhdpi. xxhdpi, xxxhdpi)
2- The drawable was created by Android Assets Studio
3- This might be a duplicate for this Question and I am not quite sure if there is a solution there

How to solve this issue, Or there is a workaround to just prevent it from happening, I don't even know how to reproduce it so that I can try troubleshooting this problem

like image 399
Omar HossamEldin Avatar asked Jan 02 '19 11:01

Omar HossamEldin


1 Answers

I had this problem after migrating a project to an earlier SDK version, version 23. I found that the project had two versions of tne .xml file containing the small icon resource (in my case res/drawable/ic_launcher_foreground.xml and res/drawable-v24/ic_launcher_foreground.xml). The crashing stopped when I deleted the .xml associated with v24.

like image 185
Max Avatar answered Nov 20 '22 05:11

Max