2014-04-29 70 views
0

我得到一個Java空指針異常無法啓動接收器錯誤。我正在從parse.com接收推送的應用程序,我正在錯誤的Android 4.0.3 - 4.0.4,並且還當我重新啓動一些設備..java.lang.RuntimeException:無法啓動接收器* .mycustomReceiver java.lang.NullPointerException

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

當我重新啓動我的手機,然後它也顯示同樣的錯誤......,否則是工作的罰款。

+0

哪裏是線30?這是你的空指針異常發生的地方 –

+0

我無法弄清楚你得到錯誤的那段代碼。哪一段代碼指向** com.omega.omegaplus.main.MyCustomReceiver.onReceive(MyCustomReceiver.java:30)的這個位置** – BaN3

+0

消息的價值是什麼?它不包含在你的logcat輸出 –

回答

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

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – RiggsFolly

+0

RiggsFolly - 不同意這一點。考慮到這些信息,我有一個強烈的懷疑,我的回答是正確的。無論如何,我用一些代碼更新了答案。 –

+0

非常感謝你親愛的這是解決我的問題 – param

相關問題