小米手机消息提醒图标报错

android.app.RemoteServiceException: Bad notification posted from package com.zondycyber.land.android.office: Couldn't create icon: StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.zondycyber.land.android.office id=0x7f0200ad) visible user=0 )
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1715)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:163)
    at android.app.ActivityThread.main(ActivityThread.java:6358)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:880)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)

就是上边报错,完全不知道是怎么回事,也不知道哪里报错,把包反编译了,也没找到“0x7f0200ad”这个资源,最后还是在大神的提醒下,对了日志,定位到App图标上消息个数显示。根据报错“Couldn't create icon: StatusBarIcon”不能创建图标。而把包反编译,也没有找到对应的R文件,大神提示可能是系统本身的图标,而报错的手机也是在系统升级后才开始报这个错的。

出错的地方是

builder.setSmallIcon(resolveInfo.getIconResource())。而resolveInfo.getIconResource()资源在系统升级后不存在,导致报错。

直接修改为从资源文件里边获取图标就好了

builder.setSmallIcon(R.drawable.pic_number_notice2);

,不用担心图标会丑,系统会自动将提醒消息的图标放在APP图标的右上角。

总结:当无法定位问题的时候,记得去对一下日志,根据日志走到的位置,可以大致得到问题发生的位置,再写log定位就好了,这样也不至于无从下手了。

你可能感兴趣的:(小米手机消息提醒图标报错)