Bonsoir tout le monde

je travail sur une application qui permet de lire un fichier de type Json sur un serveur distant et d'afficher le contenu du fichier ...

j'ai utilisé l'exemple du fichier http://jsonparsing.parseapp.com/json...esDemoItem.txt

Je ne parviens pas a interpréter les erreurs du log et a trouver une solution

aidez moi svp !!!


voici mon code MainActivity.java

Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
 
public class MainActivity extends Activity {
    private TextView tvdata;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Button btnHit = (Button)findViewById(R.id.btnHit);
        TextView tvdata = (TextView)findViewById(R.id.tvJsonItem);
 
        btnHit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new JSONTask().execute("http://http://jsonparsing.parseapp.com/jsonData/moviesDemoItem.txt");
            }
                //tvdata.setText("gabin");
        });
    }
 
 
    public class JSONTask extends AsyncTask<String, String, String>{
 
        @Override
        protected String doInBackground(String... params) {
            HttpURLConnection connection = null;
            BufferedReader reader = null;
            try {
                //URL url = new URL("http://10.0.2.2/andro/get.txt");
                URL url = new URL(params[0]);
                //URL url = new URL("10.0.2.2/get.txt");
                connection = (HttpURLConnection) url.openConnection();
                connection.connect();
 
                InputStream stream = connection.getInputStream();
                reader = new BufferedReader(new InputStreamReader(stream));
 
                String line = "";
                StringBuffer buffer = new StringBuffer();
 
                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 result) {
            super.onPostExecute(result);
            tvdata.setText(result);
        }
    }
 
}

et celui de activity xml

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="parsing.json.com.jsonparsindemo.MainActivity">
 
    <Button
        android:id="@+id/btnHit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5sp"
        android:text="Hit"/>
 
    <TextView
        android:id="@+id/tvJsonItem"
        android:layout_margin="5sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</LinearLayout>

et les erreurs

09-10 21:25:11.372 6991-6991/parsing.json.com.jsonparsindemo E/AndroidRuntime: FATAL EXCEPTION: main
Process: parsing.json.com.jsonparsindemo, PID: 6991
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at parsing.json.com.jsonparsindemo.MainActivity$JSONTask.onPostExecute(MainActivity.java:87)
at parsing.json.com.jsonparsindemo.MainActivity$JSONTask.onPostExecute(MainActivity.java:39)
at android.os.AsyncTask.finish(AsyncTask.java:651)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)


bien évidemment j'ai autorisé la permission INTERNET

Merci de m'aider