android.widget.RemoteViews$ReflectionAction.writeToParcel(RemoteViews.java :763) 4.0.3和4.0.4版本

通知栏使用RemoteView是报的错

android.widget.RemoteViews$ReflectionAction.writeToParcel(RemoteViews.java :763) 4.0.3和4.0.4版本_第1张图片

RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.notify_black_layout)

在给RemoteViews中的控件绑定相应的参数,比如给ImageView绑定图片资源id,TextView绑定字符串资源Id。

remoteViews.setImageViewBitmap(R.id.imageview1,R.drawable.icon_launcher);
remoteViews.setTextViewText(R.id.textview1,R.string.helloworld);


错误就是在绑定时出现的,而且有特定的情况:1.当你的Bitmap为null时

                                                                            2.当你的String为 “” 或者null时

                                                                            3.你的android版本是4.0.3,和4.0.4时

也就是说,如果你的通知栏是动态变化的,需要更新显示各种状态的,资源则是通过调用封装好的类来读取的,这时候就一定要注意了,返回的资源一定要判断是否为空,当然widget也用到了RemoteView同样需要注意。

如图:

android.widget.RemoteViews$ReflectionAction.writeToParcel(RemoteViews.java :763) 4.0.3和4.0.4版本_第2张图片

点击more的时候可以更换更多的功能和app


如果你的android版本是4.1以上的,则不会出现上述的异常,读不到图片就是控件不显示图片而已,不会导致程序崩溃,在4.0.x的版本的小伙伴要格外的注意,这个bug我花了一天的时间测试出来的,排查起来有点费劲,4.0以下的没有用到就没有测试,如果有小伙伴测试了可以告知一下结果。

你可能感兴趣的:(RemoteViews,writetoparcel)