【问题标题】:Android notification null pointer exceptionAndroid通知空指针异常
【发布时间】:2011-07-14 11:34:41
【问题描述】:

我在活动中设置了通知。它按预期创建通知。当我回到主屏幕时,通知仍然在那里,很好。如果我单击通知,它将带我回到创建它的活动,太好了。如果我单击按钮取消通知,我会收到 NullPointerException。

来电:

if (notificationManager == null)
    notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

Intent intent = new Intent(this, myClass.class);
Notification notification = new Notification(android.R.drawable.icon, getString(R.string.notify), System.currentTimeMillis());
notification.setLatestEventInfo(myClass.this, "AppName","Description", PendingIntent.getActivity(this.getBaseContext(), 0, intent, PendingIntent.FLAG_CANCEL_CURRENT));

notificationManager.notify(1, notification);

这里是取消:

private OnClickListener onClick_Buttons = new OnClickListener() {
    @Override
    public void onClick(View v) {
        try {
            switch (v.getId()) {
            case R.id.btn:
                notificationManager.cancel(1);

                break;
            }
        } catch (Exception e) {
            Log.e(getString(R.string.app_name), e.getMessage());
        }
    }
};

这是日志:

FATAL EXCEPTION: main
java.lang.NullPointerException: println needs a message
    at android.util.Log.println_native(Native Method)
    at android.util.Log.e(Log.java:215)
    at com.myApp.myClass$2.onClick(myClass.java:281)
    at android.view.View.performClick(View.java:2408)
    at android.view.View$PerformClick.run(View.java:8817)
    at android.os.Handler.handleCallback(Handler.java:587)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:144)
    at android.app.ActivityThread.main(ActivityThread.java:4937)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:521)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    at dalvik.system.NativeStart.main(Native Method)

我错过了什么?

谢谢

【问题讨论】:

  • logcat 中的堆栈跟踪是什么?
  • 我已将其添加到问题中。
  • ZygoteInit.java 第 868 行有什么内容?
  • 我不知道。 com.android.internal.os.... 我的活动只有 364 行。
  • 实际上,我想通了,但我会给你信用:)。回答:把这个`if (notificationManager == null) notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);'在取消行之前。

标签: android exception pointers null notifications


【解决方案1】:

一个小金属工人告诉我: 把这个`

if (notificationManager == null)
  notificationManager = (NotificationManager)  getSystemService(NOTIFICATION_SERVICE);

在取消行之前

【讨论】:

  • 很高兴能被认出来! :) 希望应用程序的其余部分一切顺利。
猜你喜欢
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-29
相关资源
最近更新 更多