0
votes
public class MainActivity extends AppCompatActivity {
    public TextView textView;public Button clickMe;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        clickMe = (Button)findViewById(R.id.clickMe);
        clickMe.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            new JsonClass().execute("www.webbanknepal.com/app/services.php");
        }});
    }



    class JsonClass extends AsyncTask<String,Void,String> {
        @Override
        protected String doInBackground(String... params) {
            HttpURLConnection connection=null;
            BufferedReader reader=null;
            try {
                URL url= new URL(params[0]);
                connection=(HttpURLConnection)url.openConnection();
                connection.connect();
                InputStream stream=connection.getInputStream();
                InputStreamReader isr= new InputStreamReader(stream);
                reader =new BufferedReader(isr);
                StringBuffer buffer=new StringBuffer();
                String line="";
                while((line=reader.readLine())!=null)
                {
                    buffer.append(line);

                }
                return buffer.toString();



            } catch (MalformedURLException e) {
               e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();

            } finally {
                if(connection!=null){ connection.disconnect();}
                try {
                    if(reader!=null){ reader.close();};
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            textView= (TextView)findViewById(R.id.textView);
            textView.setText(s.toString());
        }

    }

tHIS IS MY QUESTIOMN

i get application is unfortunately close here is my log cat file FATAL EXCEPTION

An error occured while executing doInBackground() at a.done(AsyncTask.java:300) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) at java.util.concurrent.FutureTask.setException(FutureTask.java:222) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841) Caused by: java.lang.NullPointerException at com.example.shailendra.fulljson.MainActivity$JsonClass.doInBackground(MainActivity.java:81) at com.example.shailendra.fulljson.MainActivity$JsonClass.doInBackground(MainActivity.java:47) at android.os.AsyncTask$2.call(AsyncTask.java:288) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)  at java.lang.Thread.run(Thread.java:841)

2
Try this return null; to return "";Md Abdul Gafur
no it gets an error\rishav
try to debug code and check you are getting success response from server and "buffer" contains the dataMeenal
which is 81th line in MainActivity?V-rund Puro-hit

2 Answers

1
votes

I change little bit on your code and it working fine. Check the code....

    public class MainActivity extends AppCompatActivity { public    TextView textView;public Button clickMe;@Override
         protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.activity_main);
             clickMe= (Button)findViewById(R.id.clickMe);clickMe.setOnClickListener(
             new View.OnClickListener() {
                   @Override
                   public void onClick(View v) {
                    new JsonClass().execute("http://www.webbanknepal.com/app/services.php");
                   }
             });
    }


   class JsonClass extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... params) {
        HttpURLConnection connection = null;
        BufferedReader reader = null;
        try {
            URL url = new URL(params[0]);
            connection = (HttpURLConnection) url.openConnection();
            connection.connect();
            InputStream stream = connection.getInputStream();
            InputStreamReader isr = new InputStreamReader(stream);
            reader = new BufferedReader(isr);
            StringBuffer buffer = new StringBuffer();
            String line = "";
            while ((line = reader.readLine()) != null) {
                buffer.append(line);

            }
            return buffer.toString();


        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();

        } finally {
            if (connection != null) {
                connection.disconnect();
            }
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        TextView textView = (TextView) findViewById(R.id.textView);
        textView.setText(s.toString());
    }

   }

}

0
votes

You are passing null string for onPostExecute(String s).

Do this:

public class MainActivity extends AppCompatActivity             
 {           
   public TextView textView;          
   public Button clickMe;         
   public static String s;        
   @Override    
   protected void onCreate(Bundle savedInstanceState) 
   {      
    super.onCreate(savedInstanceState);      
    ...                                 
    ...  
    new JsonClass().execute("www.webbanknepal.com/app/services.php",null,s);      
    }});       
   }
   class JsonClass extends AsyncTask<String,Void,String>
   {  @Override
     protected String doInBackground(String... params) {
     ...
     ...
     String line="";
            while((line=reader.readLine())!=null)
            {
                buffer.append(line);

            }
            s=buffer.toString();
            return s;