Android:Null PendingIntent

Android:Null PendingIntent,android,nullpointerexception,android-pendingintent,Android,Nullpointerexception,Android Pendingintent,我试图为包含通知的广播接收器创建一个PendingEvent,但不知何故返回了一个空PendingEvent。这没有任何意义,因为只指定了1种情况返回空PendingEvent,即PendingEvent.FLAG_no_CREATE作为标志选项传递 这是我的挂起代码。。在调试器pendIntent=null中设置后 我尝试了许多其他的标志/选项。我尝试从onClick/onStart/everywhere调用此代码。我使用最新版本的Android Studio,并使用最新的sdk版本25进行编

我试图为包含通知的广播接收器创建一个PendingEvent,但不知何故返回了一个空PendingEvent。这没有任何意义,因为只指定了1种情况返回空PendingEvent,即PendingEvent.FLAG_no_CREATE作为标志选项传递

这是我的挂起代码。。在调试器pendIntent=null中设置后

我尝试了许多其他的标志/选项。我尝试从onClick/onStart/everywhere调用此代码。我使用最新版本的Android Studio,并使用最新的sdk版本25进行编译。此外,在清单中正确定义了LocalPushBroadcastReceiver


这很奇怪,因为我在另一个应用程序的另一台机器上运行着完全相同的代码,我无法找出我缺少的配置。如有任何意见,我将不胜感激。谢谢

看来我的问题与我试图作为参数传递给PendingEvent的通知的大小有关。在我看来,这里的日志记录/错误处理可能会更好一些,但基本上是因为我在通知中附加了一个大位图作为一个大图片样式,所以包裹太大了,需要进行不同的处理

tl;博士


我避免将通知作为包裹传递,而是传递一个id,以便在稍后接收广播时获得正确的通知。感谢pskink的协助调试。

stacktrace是什么?stacktrace只是尝试执行pendIntent.toString()的NPE。上下文也是我的应用程序类,但这似乎并不重要,因为我尝试了Activity/getApplicationContext()中的上下文/etc.然后一步一步地调试~10行
PendingIntent#getbroadcastauser(Context,int,Intent,int,UserHandle)
,您将看到它返回null的原因。所以您的建议对我有一点帮助,我不认为调试到目前为止会给我任何超过RemoteException的信息。。。看起来我收到的RemoteException是由于事务大小太大,因为我正在将转换为位图的drawable作为BigPicture类型附加到通知包裹上。但不完全确定如何解决。。可能以更好的方式转换为位图?请接受您的答案。这将从未回答问题列表中删除此问题。谢谢
    Intent notificationIntent = new Intent(context, LocalPushBroadcastReceiver.class);
    notificationIntent.putExtra(LocalPushBroadcastReceiver.NOTIFICATION_ID_ARG, pushId);
    notificationIntent.putExtra(LocalPushBroadcastReceiver.NOTIFICATION_ARG, notification);
    notificationIntent.setData(Uri.parse("LocalPush:" + pushId + notification.toString()));
    PendingIntent pendIntent = PendingIntent.getBroadcast(context, 0, notificationIntent, 0);