Неустранимое исключение: android.app.RemoteServiceException .... Не удалось создать значок: StatusBarIcon

У меня это исключение сотни раз публиковалось на Crashlytics от моих реальных пользователей, и я не мог воспроизвести его один раз на 5 разных устройствах.

Журнал сбоев

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)

Единственное место, где я выкладываю уведомления, только с FirebaseMessagingService А вот код для отправки уведомлений

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())
}

Что следует упомянуть: 1. Drawable не является векторным, это png с прозрачным фоном, найденный в (mdpi, hdpi, xhdpi. Xxhdpi, xxxhdpi)
2- Рисунок был создан Android Assets Studio
3- Это может быть дубликат этого Вопрос, и я не совсем уверен, есть ли там решение

Как решить эту проблему, или есть обходной путь, чтобы просто предотвратить это, я даже не знаю, как воспроизвести его, чтобы я мог попробовать устранить эту проблему

Вы нашли какое-нибудь решение?

DarShan 20.06.2019 17:04

Нет, решения не нашел!

Omar HossamEldin 20.06.2019 22:03
8
2
2 422
1

Ответы 1

У меня возникла эта проблема после переноса проекта на более раннюю версию SDK, версию 23. Я обнаружил, что в проекте были две версии файла tne .xml, содержащего небольшой ресурс значка (в моем случае res / drawable / ic_launcher_foreground.xml и res / drawable -v24 / ic_launcher_foreground.xml). Сбой остановился, когда я удалил .xml, связанный с v24.

Другие вопросы по теме