Java 执行doInBackground()时发生AsyncTask错误

Java 执行doInBackground()时发生AsyncTask错误,java,android,multithreading,android-asynctask,Java,Android,Multithreading,Android Asynctask,我在下面的代码中得到一个错误,为http请求调用asyn方法。它给了我一个java.lang.RuntimeException内部错误doInBackground()方法 _____________主类____________ TextView testoInput = (TextView) findViewById(R.id.input); final String località = testoInput.getText().toString(); botto

我在下面的代码中得到一个错误,为http请求调用asyn方法。它给了我一个
java.lang.RuntimeException
内部错误
doInBackground()
方法

_____________主类____________

 TextView testoInput = (TextView) findViewById(R.id.input);
         final String località = testoInput.getText().toString();

    bottone1.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            TaskAsincrono nuovo = new TaskAsincrono();
            nuovo.execute(località);
        }
__________异步类________

公共类任务Asincrono扩展异步任务>{

    protected  ArrayList<String> doInBackground(String...params) {
        String s = params[0];

        ArrayList<String> risultato =null;

        //Inizio sessione di invio dati rest con sistema GET
        DefaultHttpClient client = new DefaultHttpClient();

            String url ="http://www.replycoupon.it/php/rest_Server/index.php?nome="+s;
            try {   
            URI uri = new URI(url);

            HttpGet get = new HttpGet(uri);

            HttpResponse res = client.execute(get);

            InputStream data = res.getEntity().getContent();

             //Inizio l'operazione di buffering per la lettura

            BufferedReader streamReader = new BufferedReader(new InputStreamReader(data));
            StringBuilder responseStrBuilder = new StringBuilder();

            String inputStr =null;

            while ((inputStr = streamReader.readLine()) != null)
                responseStrBuilder.append(inputStr);


                JSONObject jObj = new JSONObject(responseStrBuilder.toString());

                String clima = jObj.getString("clima");
                String temperatura = jObj.getString("temperatura");

                //Prima di inviare alla main metto il risultato in un arrylist


                risultato.add(clima);
                risultato.add(temperatura);

        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (URISyntaxException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
                return risultato;

    }

    protected void onPostExecute(final ArrayList<String> risultato) {
        final TextView testoClima = (TextView) findViewById(R.id.Output);
        final TextView testoTemp = (TextView) findViewById(R.id.Output2);
        testoClima.setText(risultato.get(0).toString());
        testoTemp.setText(risultato.get(1).toString());
    }



}

您试图将结果添加到
ArrayList risultato
中,该值为空。只需将其替换为
ArrayList risultato=new ArrayList()

我们可以在logcat中看到错误吗?对不起,是的,我已经添加了您是否尝试记录返回的json?MainActivity第117行中有什么内容?您需要学习如何读取堆栈跟踪以及如何调试应用程序。
10-02 20:53:07.068: D/dalvikvm(4050): GC_FOR_ALLOC freed 234K, 4% free 7914K/8188K, paused 16ms, total 16ms
10-02 20:53:09.728: W/dalvikvm(4050): threadid=11: thread exiting with uncaught exception (group=0x41800ba8)
10-02 20:53:09.728: E/AndroidRuntime(4050): FATAL EXCEPTION: AsyncTask #1
10-02 20:53:09.728: E/AndroidRuntime(4050): Process: luca.tirocinio.client_json, PID: 4050
10-02 20:53:09.728: E/AndroidRuntime(4050): java.lang.RuntimeException: An error occured while executing doInBackground()
10-02 20:53:09.728: E/AndroidRuntime(4050):     at android.os.AsyncTask$3.done(AsyncTask.java:300)
10-02 20:53:09.728: E/AndroidRuntime(4050):     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
10-02 20:53:09.728: E/AndroidRuntime(4050):     at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
10-02 20:53:09.728: E/AndroidRuntime(4050):     at java.util.concurrent.FutureTask.run(FutureTask.java:242)
10-02 20:53:09.728: E/AndroidRuntime(4050):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
10-02 20:53:09.728: E/AndroidRuntime(4050):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
10-02 20:53:09.728: E/AndroidRuntime(4050):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
10-02 20:53:09.728: E/AndroidRuntime(4050):     at java.lang.Thread.run(Thread.java:841)
10-02 20:53:09.728: E/AndroidRuntime(4050): Caused by: java.lang.NullPointerException
10-02 20:53:09.728: E/AndroidRuntime(4050):     at luca.tirocinio.client_json.MainActivity$TaskAsincrono.doInBackground(MainActivity.java:117)
10-02 20:53:09.728: E/AndroidRuntime(4050):     at luca.tirocinio.client_json.MainActivity$TaskAsincrono.doInBackground(MainActivity.java:1)
10-02 20:53:09.728: E/AndroidRuntime(4050):     at android.os.AsyncTask$2.call(AsyncTask.java:288)
10-02 20:53:09.728: E/AndroidRuntime(4050):     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
10-02 20:53:09.728: E/AndroidRuntime(4050):     ... 4 more
10-02 20:53:13.768: I/Process(4050): Sending signal. PID: 4050 SIG: 9