所以,我试图运行我的应用程序,它应该在第一次运行后显示通知。但是,它给了我这样的错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.app.Notification$Builder.<init>(Notification.java:1951)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.support.v4.app.NotificationCompatApi21$Builder.<init>(NotificationCompatApi21.java:68)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.support.v4.app.NotificationCompat$NotificationCompatImplApi21.build(NotificationCompat.java:759)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.support.v4.app.NotificationCompat$Builder.build(NotificationCompat.java:1559)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at apps.skripsi.petvac.navigationmenu.MainMenu.createButtonNotification(MainMenu.java:383)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at apps.skripsi.petvac.navigationmenu.MainMenu$DataBinatangOperation.onPostExecute(MainMenu.java:235)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at apps.skripsi.petvac.navigationmenu.MainMenu$DataBinatangOperation.onPostExecute(MainMenu.java:145)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.os.AsyncTask.finish(AsyncTask.java:632)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.os.AsyncTask.access$600(AsyncTask.java:177)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.os.Looper.loop(Looper.java:135)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5253)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:900)
12-10 12:01:03.512 3132-3132/apps.skripsi.petvac E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:695)
这是我显示通知的代码
public void createButtonNotification(Context context, String title, String content, String idb, String idv) {
// Prepare intent which is triggered if the notification button is pressed
Intent intent = new Intent(getActivity(), MainPetInformation.class);
intent.putExtra("IDBIN", idb);
intent.putExtra("IDVAK", idv);
Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
int IntID = Integer.valueOf(idb);
PendingIntent IntentAccept = PendingIntent.getActivity(getActivity(), IntID, intent, 0);
PendingIntent IntentCancel = PendingIntent.getActivity(getActivity(), IntID, intent, 0);
IntentCancel.cancel();
// Building the notifcation
NotificationCompat.Builder nBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.logo) // notification icon
.setContentTitle(title) // notification title
.setContentText(content)
.setSound(uri)// content text
.addAction(R.drawable.accept, "Accept", IntentAccept) // accept notification button
.addAction(R.drawable.cancel, "Cancel", IntentCancel); // cancel notification button
mNotificationManager.notify(IntID, nBuilder.build());
}
错误表明它发生在这一行:
mNotificationManager.notify(IntID, nBuilder.build());
请帮忙:(
最佳答案
您应该在调用此行之前初始化通知管理器。
mNotificationManager.notify(IntID, nBuilder.build());
试试这个
mNotificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(IntID, nBuilder.build());
快乐编码:)
关于android - 通知通知Android时空对象引用错误 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34194203/