java.lang.RuntimeException:无法启动receiver * .mycustomReceiver java.lang.NullPointerException

时间:2014-04-29 12:41:24

标签: java android

我收到Java空指针异常无法启动接收器错误。我正在制作一个应用程序,它接收来自parse.com的推送,我收到Android 4.0.3 - 4.0.4的错误,以及当我重新启动一些设备时..

我的LogCat是

**java.lang.RuntimeException: Unable to start receiver com.omega.omegaplus.main.MyCustomReceiver: java.lang.NullPointerException
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2419)
at android.app.ActivityThread.access$1500(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1322)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:4987)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
at org.json.JSONTokener.nextValue(JSONTokener.java:94)
at org.json.JSONObject.<init>(JSONObject.java:154)
at org.json.JSONObject.<init>(JSONObject.java:171)
at com.omega.omegaplus.main.MyCustomReceiver.onReceive(MyCustomReceiver.java:30)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2408)
... 10 more**

我的广播接收器是

    @Override
    public void onReceive(Context context, Intent intent) {

        Bundle extras = intent.getExtras();        
        String message = extras != null ? extras.getString("com.parse.Data")
                : "";

        Log.e("message ", " " + message);        
        JSONObject jObject;
        try {
            jObject = new JSONObject(message);
            //objectId = jObject.getString("id");
            time = jObject.getString("time");
            msg = jObject.getString("title");
            title = jObject.getString("msg");
                GCMMessage gcmMessage = new GCMMessage();

            //gcmMessage.setMsg_id(1);
            gcmMessage.setMsg_body(msg);
            gcmMessage.setMsg_title(title);
            gcmMessage.setType(0);
            gcmMessage.setDateTime(time);

                DatabaseUtil.insertMessage(context, gcmMessage);

        }        
        catch (JSONException e) {
            e.printStackTrace();
        }
}

当我重新启动手机时,它也显示相同的错误...,否则它工作正常。

1 个答案:

答案 0 :(得分:1)

我猜测message的值为""NULL

    JSONObject jObject;
    try {
        if (message != null && !message.equals("") {
          jObject = new JSONObject(message);
          //objectId = jObject.getString("id");
          time = jObject.getString("time");
          msg = jObject.getString("title");
          title = jObject.getString("msg");
          GCMMessage gcmMessage = new GCMMessage();

          //gcmMessage.setMsg_id(1);
          gcmMessage.setMsg_body(msg);
          gcmMessage.setMsg_title(title);
          gcmMessage.setType(0);
          gcmMessage.setDateTime(time);

          DatabaseUtil.insertMessage(context, gcmMessage);
        }

      }        
      catch (JSONException e) {
        e.printStackTrace();
      }