I am working with ksoap2 webservices,i am getting the exception after some time when i am trying to login my app,this exception raise after some time when i am trying to login my app..
my logcat:
01-20 12:04:40.669: E/AndroidRuntime(5805): FATAL EXCEPTION: AsyncTask #3
01-20 12:04:40.669: E/AndroidRuntime(5805): java.lang.RuntimeException: An  error occured while executing doInBackground()
01-20 12:04:40.669: E/AndroidRuntime(5805):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at java.util.concurrent.FutureTask.run(FutureTask.java:239)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at  java.lang.Thread.run(Thread.java:841)
01-20 12:04:40.669: E/AndroidRuntime(5805): Caused by:  java.lang.RuntimeException: Can't create handler inside thread that has not  called Looper.prepare()
01-20 12:04:40.669: E/AndroidRuntime(5805):     at android.os.Handler.<init>  (Handler.java:197)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at android.os.Handler.<init>(Handler.java:111)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at android.widget.Toast$TN.<init>(Toast.java:324)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at android.widget.Toast.   <init>(Toast.java:91)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at  android.widget.Toast.makeText(Toast.java:238)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at  com.ufone.ufoneselfcare.MainActivity$AsyncCallWS.doInBackground(MainActivity.java:274)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at c om.ufone.ufoneselfcare.MainActivity$AsyncCallWS.doInBackground(MainActivity.java:1)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
01-20 12:04:40.669: E/AndroidRuntime(5805):     at  java.util.concurrent.FutureTask.run(FutureTask.java:234)
01-20 12:04:40.669: E/AndroidRuntime(5805):     ... 4 more
01-20 12:04:41.369: E/WindowManager(5805): Activity   com.ufone.ufoneselfcare.MainActivity has leaked window   com.android.internal.policy.impl.PhoneWindow$DecorView{419047a0 V.E.....   R......D 0,0-258,175} that was originally added here
01-20 12:04:41.369: E/WindowManager(5805): android.view.WindowLeaked:  Activity com.ufone.ufoneselfcare.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{419047a0 V.E.....  R......D 0,0-258,175} that was originally added here
01-20 12:04:41.369: E/WindowManager(5805):  at  android.view.ViewRootImpl. <init>(ViewRootImpl.java:345)
01-20 12:04:41.369: E/WindowManager(5805):  at  android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:239)
01-20 12:04:41.369: E/WindowManager(5805):  at  android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
01-20 12:04:41.369: E/WindowManager(5805):  at android.app.Dialog.show(Dialog.java:281)
01-20 12:04:41.369: E/WindowManager(5805):  at  com.ufone.ufoneselfcare.MainActivity$AsyncCallWS.onPreExecute(MainActivity.java:328)
01-20 12:04:41.369: E/WindowManager(5805):  at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
01-20 12:04:41.369: E/WindowManager(5805):  at android.os.AsyncTask.execute(AsyncTask.java:534)
01-20 12:04:41.369: E/WindowManager(5805):  at  com.ufone.ufoneselfcare.MainActivity.loginAction(MainActivity.java:208)
01-20 12:04:41.369: E/WindowManager(5805):  at com.ufone.ufoneselfcare.MainActivity.access$0(MainActivity.java:167)
01-20 12:04:41.369: E/WindowManager(5805):  at com.ufone.ufoneselfcare.MainActivity$2.onClick(MainActivity.java:134)
01-20 12:04:41.369: E/WindowManager(5805):  at android.view.View.performClick(View.java:4240)
01-20 12:04:41.369: E/WindowManager(5805):  at android.view.View$PerformClick.run(View.java:17739)
01-20 12:04:41.369: E/WindowManager(5805):  at android.os.Handler.handleCallback(Handler.java:730)
01-20 12:04:41.369: E/WindowManager(5805):  at android.os.Handler.dispatchMessage(Handler.java:92)
01-20 12:04:41.369: E/WindowManager(5805):  at android.os.Looper.loop(Looper.java:137)
01-20 12:04:41.369: E/WindowManager(5805):  at  android.app.ActivityThread.main(ActivityThread.java:5140)
01-20 12:04:41.369: E/WindowManager(5805):  at  java.lang.reflect.Method.invokeNative(Native Method)
01-20 12:04:41.369: E/WindowManager(5805):  at  java.lang.reflect.Method.invoke(Method.java:525)
01-20 12:04:41.369: E/WindowManager(5805):  at  com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
01-20 12:04:41.369: E/WindowManager(5805):  at  com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
01-20 12:04:41.369: E/WindowManager(5805):  at     dalvik.system.NativeStart.main(Native Method)
This is my asynctask class:
private class AsyncCallWS extends AsyncTask<String, Void, Void> {
    @Override
    protected Void doInBackground(String... params) {
        try {
            envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.setOutputSoapObject(request);
            envelope.dotNet = true;
            Log.d("SelfCare", "request= " + request);
            androidHttpTransport = new HttpTransportSE(URL);
            Log.d("SelfCare", "androidHttpTransport= "
                    + androidHttpTransport);
            androidHttpTransport.call(SOAP_ACTION, envelope);
            SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
            Log.d("SelfCare", "response= " + response);
            /*
             * Toast.makeText(getApplicationContext(), "Response= " +
             * response, Toast.LENGTH_LONG).show();
             */
            String jsonResponse = "";
            jsonResponse = response.toString();
            // A JSONTokener is needed in order to use JSONObject correctly
            JSONTokener jsonTokener = new JSONTokener(jsonResponse);
            // Pass a JSONTokener to the JSONObject constructor
            JSONObject jsonObj = new JSONObject(jsonTokener);
            JSONArray data = jsonObj.getJSONArray("data");
            if (data != null) {
                // looping through All nodes
                for (int i = 0; i < data.length(); i++) {
                    JSONObject c = data.getJSONObject(i);
                    message = c.getString("message");
                    sessionid = c.getInt("sessionid");
                    saleid = c.getInt("saleid");
                    name = c.getString("name");
                    email = c.getString("email");
                    defaultmsisdn = c.getString("defaultmsisdn");
                    Log.d("SelfCare", "message= " + message);
                    Log.d("SelfCare", "sessionid= " + sessionid);
                }
                /*
                 * Toast.makeText(getBaseContext(), "Success",
                 * Toast.LENGTH_LONG).show();
                 */
            } else {
                Toast.makeText(getBaseContext(), "Error", Toast.LENGTH_LONG)
                        .show();
            }
            /*TextView results = (TextView) findViewById(R.id.login_error);
            results.setText(response.toString());*/
        } catch (Exception e) {
            //alertDialog(e.toString());
            Toast.makeText(getApplicationContext(), e.getMessage(),
                    Toast.LENGTH_LONG).show();
            e.printStackTrace();
        }
        return null;
    }
    @Override
    protected void onPostExecute(Void result) {
        // Log.i(TAG, "onPostExecute");
        // tv.setText(fahren + "° F");
        pDialog.dismiss();
        if (message.equalsIgnoreCase("Login Successful.")) {
            if (defaultmsisdn.equalsIgnoreCase("null") && saleid == 0) {
                et_username.setText("");
                et_password.setText("");
                Intent intent = new Intent(getApplicationContext(),
                        AssociateMsisdn.class);
                intent.putExtra("username", username);
                intent.putExtra("sessionid", sessionid);
                intent.putExtra("name", name);
                intent.putExtra("email", email);
                startActivity(intent);
            //alertDialog("Open the Associate MSISDN Class.");
            } else {
                et_username.setText("");
                et_password.setText("");
                Intent intent = new Intent(getApplicationContext(),
                        MainMenu.class);
                intent.putExtra("name", name);
                intent.putExtra("username", username);
                intent.putExtra("defaultmsisdn", defaultmsisdn);
                intent.putExtra("sessionid", sessionid);
                intent.putExtra("saleid", saleid);
                intent.putExtra("email", email);
                startActivity(intent);
            }
        } else {
            alertDialog(message);
            // Toast.makeText(getApplicationContext(), "" +message ,
            // Toast.LENGTH_LONG).show();
        }
    }
    @Override
    protected void onPreExecute() {
        // Log.i(TAG, "onPreExecute");
        // tv.setText("Calculating...");
        // pDialog = new ProgressDialog(MainActivity.this);
        pDialog.setMessage("Loading ...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(false);
        pDialog.show();
    }
    @Override
    protected void onProgressUpdate(Void... values) {
        // Log.i(TAG, "onProgressUpdate");
    }
}
and that is the line on which I am getting the exception::
androidHttpTransport.call(SOAP_ACTION, envelope);
Note:- I am getting the exception not regularly, but getting the exception after some time when I am trying to login my app and one more thing when I debug my app then in my catch block this message will be come java.net.sockettimeoutexception
 
    