Ungültige Benachrichtigung gepostet – RemoteViews konnten nicht erweitert werden für: StatusBarNotification
Lesezeit: 3 Minuten
Chaitanya
Ich versuche, eine Benachrichtigung mit einer benutzerdefinierten Ansicht im Benachrichtigungsbereich von einem zu posten IntentServiceund immer die Couldn't expand RemoteView Error.
ich rufe an notify() aus onHandleIntent()und Abbrechen der Benachrichtigungen in onDestroy().
Ich habe überprüft, dass dieser Code in einer unabhängigen App funktioniert, die keine hat IntentService. Dies in einem IntentService macht irgendwie probleme.
Kann mir bitte jemand erklären was ich falsch mache?
Iman Akbari
Für mich bestand das Problem darin, dass ich in der XML-Datei der benutzerdefinierten Benachrichtigungsansicht eine bestimmte Höhe für das Stammlayout festgelegt habe.
Im Root-Layout der Benachrichtigungsansicht wurde das Problem behoben.
Schau auch mal rein dieses Beispiel um ein einfaches Beispiel für die Verwendung eines benutzerdefinierten Layouts für Benachrichtigungen zu sehen.
In Android 5.0+ konnte ich das nicht beheben Couldn't expand RemoteViews for: StatusBarNotificationFehler, bis ich die Höhe des benutzerdefinierten Ansichtsstamms auf android:layout_height=”64dp” setze … aber ich treffe diesen Fehler nicht unter 5.0, es ist seltsam.
– Droida
10. November 2015 um 7:56 Uhr
Aus unbekannten Gründen dürfen Sie in der Stammansicht der benutzerdefinierten Remote-Ansicht nicht auf Dimensionen verweisen! Sie müssen es also hart codieren android:layout_height="64dp" aber wenn Sie verwendet android:layout_height="@dimen/notification_height_that_64" es wird dir geben Bad notification posted - Couldn't expand RemoteViews for: StatusBarNotification . ich hoffe das hilft 🙂
Du hast meinen Tag gerettet … vielen Dank … aber ich weiß nicht, was der Grund dafür ist … warum braucht es keine Dimen für die benutzerdefinierte Ansicht?
– Raghav Sharma
18. Juni 2017 um 3:44 Uhr
In meinem Fall wurde die Ausnahme durch einen regulären verursacht View in meinem benutzerdefinierten Benachrichtigungslayout. Grundsätzlich liegt es daran, dass Sie nur bestimmte Widgets wie TextView, ImageView und so weiter verwenden dürfen.
In meinem Fall konnte ich diesen Fehler beheben, indem ich die von mir bereitgestellte Symbolgröße reduzierte .setSmallIcon();
Für mich war das Problem mit a View Element im benutzerdefinierten Layoutsatz für die benutzerdefinierte Benachrichtigung. Entferne den View item aus dem Layout löste das Problem der Bad Notification Posted.
Hier ist ein Liste der Layoutelemente die verwendet werden können, wenn Sie eine benutzerdefinierte Benachrichtigung erstellen möchten RemoteView.
Weder Reinigungsprojekt noch Einstellung der layout_height wie match_parent hat bei mir funktioniert.
GabrieleG
Ich hatte das gleiche Problem. In meinem Fall:
Grund -> Ich habe für die Funktion builder.setAction(R.drawable.icon,…) ein Vectordrawable verwendet und versucht, sie auch über die Support-Bibliothek zu aktivieren, aber nichts hat funktioniert. In neueren Android-Systemen sehe ich keine Aktionssymbole, in den anderen gibt es diesen Fehler.
Lösung -> Ich habe nichts gefunden, der einzige Workaround für mich ist, .xml-Dateien für Drawables zu vermeiden und die .png-Dateien in allen Verzeichnissen hdpi mdpi ldpi zu verwenden.
ndmeiri
Ich habe den gleichen Fehler bekommen, aber das Problem für mich war das Constrain-Layout. Ich habe es geändert Relative Layout um das Problem zu beheben.
10345300cookie-checkUngültige Benachrichtigung gepostet – RemoteViews konnten nicht erweitert werden für: StatusBarNotificationyes