Juvi
Juvi

Reputation: 1318

GCM.send exception at doInBackground

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

Answers (1)

Damian Jeżewski
Damian Jeżewski

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

Related Questions