1

我正在使用远程视图为媒体播放器生成自定义通知。但是当我调用 showNotification() 方法时出现以下异常。

android.app.RemoteServiceException: Bad notification posted from package com.sample.acv3: 
                         Couldn't expand RemoteViews for: StatusBarNotification(pkg=com.sample.acv3 user=UserHandle{0} id=1234 tag=null score=0 key=0|com.sample.acv3|1234|null|10140: Notification(pri=0 contentView=com.sample.acv3/0x7f040055 vibrate=null sound=null defaults=0x0 flags=0x0 color=0x00000000 vis=PRIVATE))
                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1526)
                         at android.os.Handler.dispatchMessage(Handler.java:102)
                         at android.os.Looper.loop(Looper.java:148)
                         at android.app.ActivityThread.main(ActivityThread.java:5461)
                         at java.lang.reflect.Method.invoke(Native Method)
                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

我的 Java 代码生成自定义通知。

 public void showNotification() {
    if (mRemoteViews == null) {
        mRemoteViews = new RemoteViews(getPackageName(), R.layout.player_notification);
    }

    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    mNotification = new NotificationCompat.Builder(MPService.this)
            .setSmallIcon(R.drawable.status_icon)
            .setOngoing(true)
            .setContent(mRemoteViews);
   mRemoteViews.setTextViewText(R.id.player_notification_title, AppConstant.playerTitle);
    notificationManager.notify(0, mNotification.build());
}

XML 代码 (player_notification.xml)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/switch_thumb_normal_material_light"
android:orientation="vertical">


<ImageView
    android:id="@+id/player_image"
    android:layout_width="41dp"

    android:layout_height="41dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_centerVertical="true"
    android:layout_margin="16dp"
    android:src="@drawable/ic_launcher_sample" />


<TextView
    android:id="@+id/player_notification_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="70dp"
    android:layout_marginTop="10dp"
    android:layout_toLeftOf="@+id/closebutton"
    android:layout_toRightOf="@id/player_image"
    android:singleLine="true"
    android:textColor="@color/colorPrimary"
    android:textSize="18sp"


    />

<TextView
    android:id="@+id/textViewApp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/player_notification_title"
    android:layout_marginBottom="10dp"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    android:layout_toRightOf="@id/player_image"
    android:singleLine="true"
    android:text="Sample"
    android:textColor="@color/colorPrimary"


    />

<ImageButton

    android:id="@+id/closebutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:layout_marginRight="@dimen/list_image_margin"
    android:background="@drawable/ic_clear_black_24dp" />

<ImageView
    android:id="@+id/bar_btn_play"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginRight="25dp"
    android:layout_toLeftOf="@id/closebutton"
    android:background="@drawable/ic_play_notification"
    android:backgroundTint="@color/colorPrimary"
    android:visibility="gone" />

<ImageView
    android:id="@+id/bar_btn_pause"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginRight="25dp"
    android:layout_toLeftOf="@id/closebutton"
    android:background="@drawable/ic_pause_notification"
    android:backgroundTint="@color/colorPrimary" />
</RelativeLayout>

我还阅读了有关此异常的堆栈溢出帖子,但无法获得解决方案。

我认为远程视图存在一些问题。但我无法弄清楚。

4

0 回答 0