Ungültige Benachrichtigung gepostet – RemoteViews konnten nicht erweitert werden für: StatusBarNotification

Lesezeit: 3 Minuten

Benutzer-Avatar
Chaitanya

Ich versuche, eine Benachrichtigung mit einer benutzerdefinierten Ansicht im Benachrichtigungsbereich von einem zu posten IntentServiceund immer die Couldn't expand RemoteView Error.

Hier ist, was ich mache onCreate():

mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
icon = R.drawable.icon;
tickerText = "data upload in progress";
contentView = new RemoteViews(getApplicationContext().getPackageName(), R.layout.notiflayout);
contentView.setImageViewResource(R.id.image, R.drawable.icon);
contentView.setTextViewText(R.id.text, "Hello");
contentView.setProgressBar(R.id.progressBar, 100, 10, false);
whatNext = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(getApplicationContext(), starterActivity.class), 0);
notification = new Notification(icon, tickerText, System.currentTimeMillis());
notification.contentView = contentView;
notification.contentIntent = whatNext;

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?

Benutzer-Avatar
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.

Sobald ich gewechselt habe:

android:layout_height=”@dimen/notification_expanded”

zu

android:layout_height=”match_parent”

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.

Benutzer-Avatar
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.

Benutzer-Avatar
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.

1034530cookie-checkUngültige Benachrichtigung gepostet – RemoteViews konnten nicht erweitert werden für: StatusBarNotification

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy