Reputation: 1318
I'm trying to implement gcm to my app. I'm getting error at doInBackground at the gcm.send command, I've checked that the parameters are all fine with values.
The logCat:
02-02 17:01:52.313: E/AndroidRuntime(13881): FATAL EXCEPTION: AsyncTask #2
02-02 17:01:52.313: E/AndroidRuntime(13881): java.lang.RuntimeException: An error occured while executing doInBackground()
02-02 17:01:52.313: E/AndroidRuntime(13881): at android.os.AsyncTask$3.done(AsyncTask.java:299)
02-02 17:01:52.313: E/AndroidRuntime(13881): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
02-02 17:01:52.313: E/AndroidRuntime(13881): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
02-02 17:01:52.313: E/AndroidRuntime(13881): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
02-02 17:01:52.313: E/AndroidRuntime(13881): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
02-02 17:01:52.313: E/AndroidRuntime(13881): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
02-02 17:01:52.313: E/AndroidRuntime(13881): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
02-02 17:01:52.313: E/AndroidRuntime(13881): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
02-02 17:01:52.313: E/AndroidRuntime(13881): at java.lang.Thread.run(Thread.java:856)
02-02 17:01:52.313: E/AndroidRuntime(13881): Caused by: java.lang.NullPointerException
02-02 17:01:52.313: E/AndroidRuntime(13881): at com.example.catchme2.GoogleMapFragment$10.doInBackground(GoogleMapFragment.java:602)
02-02 17:01:52.313: E/AndroidRuntime(13881): at com.example.catchme2.GoogleMapFragment$10.doInBackground(GoogleMapFragment.java:1)
02-02 17:01:52.313: E/AndroidRuntime(13881): at android.os.AsyncTask$2.call(AsyncTask.java:287)
02-02 17:01:52.313: E/AndroidRuntime(13881): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
02-02 17:01:52.313: E/AndroidRuntime(13881): ... 5 more
and the code:
public void sendAmessage ()
{
new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... params) {
String msg = "";
try {
Bundle data = new Bundle();
data.putString("my_message", "Hello World");
data.putString("my_action",
"com.google.android.gcm.demo.app.ECHO_NOW");
String id = Integer.toString(msgId.incrementAndGet());
gcm.send(SENDER_ID + "@gcm.googleapis.com", id, data);
msg = "Sent message";
} catch (IOException ex) {
msg = "Error :" + ex.getMessage();
}
return msg;
}
@Override
protected void onPostExecute(String msg) {
if (progressDialog.isShowing()) {
progressDialog.cancel();
}
MainActivity m = (MainActivity)getActivity();
m.LoadSetFrom();
}
}.execute();
}
I cant get into the catch statment since it's breaking up after the gcm.send line, and from the logcat it may seem that I'm dealing with asynctask issue.
Upvotes: 0
Views: 576
Reputation: 1246
Are you sure that value assigned to gcm
is not null? You should obtain GCM instance by calling GoogleCloudMessaging.getInstance(this)
inside the onCreate()
method. If you need more detailed answer please post complete code of GoogleMapFragment
Upvotes: 1