param
param

Reputation: 493

java.lang.RuntimeException: Unable to start receiver *.mycustomReceiver java.lang.NullPointerException

I am getting a Java null pointer exception Unable to start receiver error. I am making an app which receives the push from the parse.com and I am getting the error for Android 4.0.3 - 4.0.4, and also when I restart the some devices..

My LogCat is

**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**

My broadcast receiver is

    @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();
        }
}

When I reboot my phone then also it showing same error..., otherwise it is working fine.

Upvotes: 0

Views: 5763

Answers (1)

Andrew Fielden
Andrew Fielden

Reputation: 3899

I'll have a guess that message has the value of "" or 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();
      }

Upvotes: 1

Related Questions