Android

Bad notification posted from package : Couldn’t expand RemoteViews for: StatusBarNotification

Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package : Couldn’t expand RemoteViews for: StatusBarNotification(pkg=com.test user=UserHandle{0} id=1007 tag=null key=0|com.test|1007|null|10121: Notification(pri=0 contentView=com.test/0x7f0b0032 vibrate=null sound=null defaults=0x0 flags=0x20 color=0x00000000 vis=PRIVATE))
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1732)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6369)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1090)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:951)

 

위 오류가 발생한 기기정보는 아래와 같다.

브랜드: lenovo
모델: Lenovo K8 Note
방향: 세로
여유 RAM: 2.12 GB
디스크 여유 공간: 44.47 GB
운영체제 버전: 7.1.1
방향: 세로
루팅: 아니요

 

브랜드: SHARP
모델: AQUOS sense
방향: 세로
여유 RAM: 1.13 GB
디스크 여유 공간: 14.1 GB
운영체제 버전: 7.1.2
방향: 세로
루팅: 아니요

브랜드: samsung
모델: Galaxy J5(2016)
방향: 세로
여유 RAM: 460.19 MB
디스크 여유 공간: 1.51 GB
운영체제 버전: 7.1.1
방향: 세로
루팅: 아니요

 

브랜드: samsung
모델: Galaxy Grand Prime Pro
방향: 세로
여유 RAM: 260.43 MB
디스크 여유 공간: 532.59 MB
운영체제 버전: 7.1.1
방향: 세로
루팅: 아니요

 

코드상 문제는 없다!! 아직 해결방법을 찾지 못했다.

아래 해결방법은 나에게 도움이 되지 못했으나, 혹시 도움이 될 개발자도 있을지 모르니 링크해본다.

Bad notification posted – Couldn’t expand RemoteViews for: StatusBarNotification

 

 

RemotViews를 사용하는 경우에 layout xml에서 사용될 수 있는 위젯 뷰가 정해져 있음을 새롭게 알게되었다.

사용가능한 레이아웃은 아래 링크를 참고하자

developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout

 

앱 위젯 빌드  |  Android 개발자  |  Android Developers

앱 위젯은 다른 애플리케이션(예: 홈 화면)에 삽입되어 주기적인 업데이트를 받을 수 있는 소형 애플리케이션 뷰입니다. 이러한 뷰는 사용자 인터페이스에서 위젯이라고 하며 앱 위젯 공급자를

developer.android.com

그러나 내가 만든 리모트뷰에는 사용가능한 뷰만 사용중임에도 이러한 오류가 발생되었다.

 

 

노티를 만들때,  setLargeIcon() 메소드와 setSmallIcon() 호출 순서를 바꾸었더니 해결되었다는 글도 보았으나 나는 setLargeIcon()메소드를 사용하지 않음으로 패스했다.

.setLargeIcon(bitmap)
.setSmallIcon(R.drawable.notification_small_icon)


Notification notification = new androidx.core.app.NotificationCompat.Builder(this, CHANNEL_ID)
//.setContentTitle("") //자동표기됨
.setContentTitle(context.getResources().getString(R.string.content_txt_45)) //추가
.setAutoCancel(false)
//.setWhen(System.currentTimeMillis())
.setShowWhen(false)
//.setLargeIcon(null)
.setSmallIcon(getPngImage(level))
.setContentIntent(pendingIntent)
.setContent(remoteViews)
.build();

 

설마… 이미지뷰에 xml 리소스를 사용해서 그런것일까??

 views.setImageViewResource(R.id.widet_bar10, R.drawable.line_garo_gauge_empty);

 

line_garo_gauge_empty.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <corners
        android:radius="3dp"
        />
    <solid
        android:color="@color/colorxml_color_03"
        />
    <size
        android:width="14dp"
        android:height="80dp"
        />
    <stroke
        android:width="1dp"
        android:color="@color/colorxml_color_03"
        />
</shape>



 

혹시 @dimen를 사용중이라면 제거해야한다. android:layout_height=”50dp”처럼 하드코딩해야된다.

 

아래 링크는 많은 개발자들의 자신이 해결한 방법들에 대해 댓글들이 달렸다.

stackoverflow.com/questions/6209631/bad-notification-posted-couldnt-expand-remoteviews-for-statusbarnotification?rq=1

 

Bad notification posted – Couldn’t expand RemoteViews for: StatusBarNotification

I am trying to post a notification with a custom view in the notification area from an IntentService, and getting the Couldn’t expand RemoteView error. Here’s what I am doing in onCreate():

stackoverflow.com

 

 

Leave a Reply

error: Content is protected !!