IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Android : erreur dans l'Utilisation d' AsyncTask


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    université de Dschang
    Inscrit en
    Mai 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : université de Dschang
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2016
    Messages : 2
    Par défaut Android : erreur dans l'Utilisation d' AsyncTask
    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

  2. #2
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Dans cette instruction, il y a 2 erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tvdata.setText(result);
    l'objet tvdata semble null, donc le programme plante. A toi de voir pourquoi.
    Et même si ce n'était pas le cas, le paramètre result est également null car c'est que tu as choisi de retourner dans doInBackground(). Donc tu ne risques pas de voir apparaître un texte.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Candidat au Club
    Homme Profil pro
    université de Dschang
    Inscrit en
    Mai 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : université de Dschang
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2016
    Messages : 2
    Par défaut
    Merci je vois mais svp comment ressourdre ce problème je suis ko

  4. #4
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    L'utilisation correcte d'une AsyncTask est expliquée ici : http://olegoaer.developpez.com/tutos...e/android/rpc/
    Tu peux commencer par restructurer ton code en conséquence et peut-être cela éliminera naturellement ton erreur.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. [Python 2.X] [Pandas]erreur dans l'utilisation
    Par la_fouine1806 dans le forum Général Python
    Réponses: 0
    Dernier message: 01/04/2016, 11h04
  2. [XL-2010] erreur dans l'utilisation de if, elseif, else imbriqués
    Par Maude_84 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/02/2015, 11h41
  3. Erreur dans l'utilisation d'ActionWebService
    Par NacedoChristo dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 25/03/2010, 15h37
  4. Erreur dans l'utilisation de générique
    Par jybux dans le forum C#
    Réponses: 2
    Dernier message: 21/02/2010, 12h03
  5. Erreur dans l'utilisation de SWAP
    Par mire dans le forum Langage
    Réponses: 12
    Dernier message: 15/03/2003, 21h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo