Antwan
Antwan

Reputation: 3876

Fatal Exception Asynctask #1 java.lang.RuntimeException error occured while executing doInBackground()

i m trying to call web services method from android app but i get in error java.lang.RuntimeException error occured while executing doInBackground() and the app stopped i have saw alot of question about this but they solved by adding internet permission to the manifest file but its Didn't work to

here is my code

     package tony.ds_hw;



import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class get_info extends Activity implements OnClickListener {


Button infobutton;
   EditText nametext;

        private static String URL="http://192.168.1.102:8080/DS_HW-war/webresources/Getinfo";
        private static final  String GET_REQUEST="GET";
        private static final String POST_REQUEST="POST";




    JSONParser jsonParser=new JSONParser();
    ProgressDialog pDialog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        nametext=(EditText) findViewById(R.id.editText1);
        setContentView(R.layout.get_info);
        infobutton=(Button) findViewById(R.id.button1);
        infobutton.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v.getId()==R.id.button1)
        {
             new Find().execute(URL);
        }
    }

    class Find extends AsyncTask<String,Void,String>
    {


        String json=null;
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(get_info.this);
            pDialog.setMessage("Loading Please wait!");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
            Toast.makeText(get_info.this,"finsih pre",Toast.LENGTH_LONG).show();
        }

          @Override
            protected String doInBackground(String... params) {
                String name =nametext.getText().toString();
                List<NameValuePair> param=new ArrayList<NameValuePair>();
                param.add(new BasicNameValuePair("name", name));
                JSONObject jsonObject=jsonParser.makeHttpRequest(params[0], GET_REQUEST, param);
                json=jsonObject.toString();
                if(json != null)
                {
                Log.d("msg","Success");
                }
                else 
                {
                    Log.d("msg","Failed" );
                }

                return json;
            }

            @Override
            protected void onPostExecute(String result) {
                // TODO Auto-generated method stub
                super.onPostExecute(result);
                pDialog.dismiss();
                if(result!=null) {
                Toast.makeText(get_info.this,"Data Loaded successfully", Toast.LENGTH_LONG).show();

                Intent i=new Intent(get_info.this,Result.class ).putExtra("jsonstring",result);
                finish();
                startActivity(i);

                } else 
                    Toast.makeText(get_info.this,"Failed To Load Data", Toast.LENGTH_LONG).show();
            }



    }



}

and the logcat

12-31 23:35:58.593: E/AndroidRuntime(1124): FATAL EXCEPTION: AsyncTask #1
12-31 23:35:58.593: E/AndroidRuntime(1124): java.lang.RuntimeException: An error occured while executing doInBackground()
12-31 23:35:58.593: E/AndroidRuntime(1124):     at android.os.AsyncTask$3.done(AsyncTask.java:278)
12-31 23:35:58.593: E/AndroidRuntime(1124):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
12-31 23:35:58.593: E/AndroidRuntime(1124):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
12-31 23:35:58.593: E/AndroidRuntime(1124):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
12-31 23:35:58.593: E/AndroidRuntime(1124):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
12-31 23:35:58.593: E/AndroidRuntime(1124):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
12-31 23:35:58.593: E/AndroidRuntime(1124):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
12-31 23:35:58.593: E/AndroidRuntime(1124):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
12-31 23:35:58.593: E/AndroidRuntime(1124):     at java.lang.Thread.run(Thread.java:856)
12-31 23:35:58.593: E/AndroidRuntime(1124): Caused by: java.lang.NullPointerException
12-31 23:35:58.593: E/AndroidRuntime(1124):     at tony.ds_hw.get_info$Find.doInBackground(get_info.java:73)
12-31 23:35:58.593: E/AndroidRuntime(1124):     at tony.ds_hw.get_info$Find.doInBackground(get_info.java:1)
12-31 23:35:58.593: E/AndroidRuntime(1124):     at android.os.AsyncTask$2.call(AsyncTask.java:264)
12-31 23:35:58.593: E/AndroidRuntime(1124):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
12-31 23:35:58.593: E/AndroidRuntime(1124):     ... 5 more
12-31 23:35:58.943: E/WindowManager(1124): Activity tony.ds_hw.get_info has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@2be0f4a0 that was originally added here
12-31 23:35:58.943: E/WindowManager(1124): android.view.WindowLeaked: Activity tony.ds_hw.get_info has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@2be0f4a0 that was originally added here
12-31 23:35:58.943: E/WindowManager(1124):  at android.view.ViewRootImpl.<init>(ViewRootImpl.java:344)
12-31 23:35:58.943: E/WindowManager(1124):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:267)
12-31 23:35:58.943: E/WindowManager(1124):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
12-31 23:35:58.943: E/WindowManager(1124):  at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
12-31 23:35:58.943: E/WindowManager(1124):  at android.view.Window$LocalWindowManager.addView(Window.java:537)
12-31 23:35:58.943: E/WindowManager(1124):  at android.app.Dialog.show(Dialog.java:278)
12-31 23:35:58.943: E/WindowManager(1124):  at tony.ds_hw.get_info$Find.onPreExecute(get_info.java:67)
12-31 23:35:58.943: E/WindowManager(1124):  at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:561)
12-31 23:35:58.943: E/WindowManager(1124):  at android.os.AsyncTask.execute(AsyncTask.java:511)
12-31 23:35:58.943: E/WindowManager(1124):  at tony.ds_hw.get_info.onClick(get_info.java:51)
12-31 23:35:58.943: E/WindowManager(1124):  at android.view.View.performClick(View.java:3534)
12-31 23:35:58.943: E/WindowManager(1124):  at android.view.View$PerformClick.run(View.java:14263)
12-31 23:35:58.943: E/WindowManager(1124):  at android.os.Handler.handleCallback(Handler.java:605)
12-31 23:35:58.943: E/WindowManager(1124):  at android.os.Handler.dispatchMessage(Handler.java:92)
12-31 23:35:58.943: E/WindowManager(1124):  at android.os.Looper.loop(Looper.java:137)
12-31 23:35:58.943: E/WindowManager(1124):  at android.app.ActivityThread.main(ActivityThread.java:4441)
12-31 23:35:58.943: E/WindowManager(1124):  at java.lang.reflect.Method.invokeNative(Native Method)
12-31 23:35:58.943: E/WindowManager(1124):  at java.lang.reflect.Method.invoke(Method.java:511)
12-31 23:35:58.943: E/WindowManager(1124):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-31 23:35:58.943: E/WindowManager(1124):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-31 23:35:58.943: E/WindowManager(1124):  at dalvik.system.NativeStart.main(Native Method)

Upvotes: 1

Views: 9716

Answers (1)

Coderji
Coderji

Reputation: 7745

your problem was with your EditText. you have identified it before you set the content of the activity which leads to windowLeaked and NPE.

so to fix this change:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    nametext=(EditText) findViewById(R.id.editText1); //move this!
    setContentView(R.layout.get_info);
    infobutton=(Button) findViewById(R.id.button1);

to:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.get_info);
    nametext=(EditText) findViewById(R.id.editText1); //to here
    infobutton=(Button) findViewById(R.id.button1);

Good luck with your app and happy programming.

Upvotes: 3

Related Questions