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 :

Erreur "java.lang.NullPointerException"


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 52
    Points : 37
    Points
    37
    Par défaut Erreur "java.lang.NullPointerException"
    Bonjour,

    J'obtiens une erreur NullPointerException mais je n'arrive pas à localiser d'où elle vient...

    Voici mon code :
    Code : 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
    package com.androidhive.dashboard;
     
    import android.app.Activity;
    import android.os.Bundle;
    import androidhive.dashboard.R;
     
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
     
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
     
    import android.util.Log;
    import android.widget.ListView;
     
    public class PlacesActivity extends Activity {
        ListView L;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.places_layout);
            final ArrayList<Article> Produits = new ArrayList <Article> ();
            final String strURL = "http://192.168.1.74/test/stock.php";
            InputStream is = null;
            String result=null;
     
            try{
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(strURL);
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();
     
            }catch(Exception e){
                Log.e("log_tag", "Error in http connection " + e.toString());
            }
     
            // Convertion de la requête en string
                        try{
                            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                            StringBuilder sb = new StringBuilder();
                            String line = null;
                            while ((line = reader.readLine()) != null) {
                                sb.append(line);
     
                            }
                            is.close();
                            result=sb.toString();
     
                        }catch(Exception e){
                            Log.e("log_tag", "Error converting result " + e.toString());
     
                        }
     
                        // Parse les données JSON
                        try{
                            JSONArray jArray = new JSONArray(result);
                            for(int i=0;i<jArray.length();i++){
                                JSONObject json_data = jArray.getJSONObject(i);
                                Produits.add(new Article(json_data.getString("pid"),json_data.getString("CodArt"),json_data.getString("LibArt"),json_data.getString("PrixTTC")));
                                }
                        }catch(JSONException e){
                            Log.e("log_tag", "Error parsing data " + e.toString());
                        }
                        L=(ListView)findViewById(R.id.list);
                        final AdapterS adapter =new AdapterS(this,Produits);
                        L.setAdapter(adapter);
        }
    }
    et ceci mon code php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        <?php
        require 'FastJSON.class.php';
     
         $db = mssql_connect('HPWALID', '', '');
         $ret = mssql_select_db('Focus', $db);
         $sql=mssql_query("SELECT pid, CodArt, LibArt, PrixTTC FROM TabStock");
          while($row=mssql_fetch_array($sql))
          $output[]=$row;
          $var = FastJSON::encode($output);
          print($var);
        ?>
    Quelqu'un saurait-indiquer d'où peut venir le problème ?

    Merci d'avance pour votre aide.

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 169
    Points : 171
    Points
    171
    Par défaut
    Il faut que tu regardes le LogCat. Il te signalera ou l'erreur se trouve.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 387
    Points : 301
    Points
    301
    Par défaut
    Dans Logcat tu as une ligne (en rouge) contenant "java.lang.nullpointerexception" et en dessous (quelques lignes en dessous) : "Caused by .............".
    Si tu regardes à partir de cette partie il te donne la raison et la ligne exacte où le problème se situe

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Voici le msg du Logcat :
    09-21 13:17:19.290: E/AndroidRuntime(3741): FATAL EXCEPTION: main
    09-21 13:17:19.290: E/AndroidRuntime(3741): java.lang.NullPointerException
    09-21 13:17:19.290: E/AndroidRuntime(3741): at com.androidhive.dashboard.AdapterS.getView(AdapterS.java:61)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.widget.AbsListView.obtainView(AbsListView.java:2146)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.widget.ListView.measureHeightOfChildren(ListView.java:1261)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.widget.ListView.onMeasure(ListView.java:1172)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.view.View.measure(View.java:10840)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4353)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1284)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.widget.LinearLayout.measureVertical(LinearLayout.java:613)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.widget.LinearLayout.onMeasure(LinearLayout.java:519)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.view.View.measure(View.java:10840)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4353)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.widget.FrameLayout.onMeasure(FrameLayout.java:267)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.view.View.measure(View.java:10840)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.widget.LinearLayout.measureVertical(LinearLayout.java:764)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.widget.LinearLayout.onMeasure(LinearLayout.java:519)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.view.View.measure(View.java:10840)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4353)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.widget.FrameLayout.onMeasure(FrameLayout.java:267)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2043)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.view.View.measure(View.java:10840)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.view.ViewRoot.performTraversals(ViewRoot.java:912)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.view.ViewRoot.handleMessage(ViewRoot.java:2023)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.os.Handler.dispatchMessage(Handler.java:99)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.os.Looper.loop(Looper.java:132)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at android.app.ActivityThread.main(ActivityThread.java:4028)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at java.lang.reflect.Method.invokeNative(Native Method)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at java.lang.reflect.Method.invoke(Method.java:491)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
    09-21 13:17:19.290: E/AndroidRuntime(3741): at dalvik.system.NativeStart.main(Native Method)

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 169
    Points : 171
    Points
    171
    Par défaut
    L'erreur se trouve ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    com.androidhive.dashboard.AdapterS.getView(AdapterS.java:61)
    Soit dans le fichier AdapterS à la ligne 61

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Oui je viens de découvrir ça mais je ne trouve pas d'erreur...
    Code : 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
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    package com.androidhive.dashboard;
     
    import java.util.ArrayList;
     
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.Filter;
    import android.widget.TextView;
    import androidhive.dashboard.R;
     
    public class AdapterS extends BaseAdapter {
     
        private ArrayList<Article> article;
        private LayoutInflater myInflater;
     
        public AdapterS (Context context, ArrayList<Article> _produits)
        {
            this.myInflater = LayoutInflater.from(context);
            this.article = _produits;
        }
     
        public int getCount() {
            return this.article.size();
        }
     
        public Object getItem(int arg0) {
            return this.article.get(arg0);
        }
     
        public long getItemId(int position) {
            return position;
        }
     
        public static class ViewHolder {
            TextView pid;
            TextView CodArt;
            TextView LibArt;
            TextView PrixTTC;
        }
     
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder;
     
            if (convertView == null)
            {
                convertView = myInflater.inflate(R.layout.produit_row, null);
                holder = new ViewHolder();
                holder.pid = (TextView) convertView.findViewById(R.id.pid);
                holder.CodArt = (TextView) convertView.findViewById(R.id.codart);
                holder.LibArt = (TextView) convertView.findViewById(R.id.libart);
                holder.PrixTTC = (TextView) convertView.findViewById(R.id.prixttc);
     
                convertView.setTag(holder);
            } else {
                holder = (ViewHolder) convertView.getTag();
            }
     
            holder.pid.setText(article.get(position).getPid()+": ");
            holder.CodArt.setText(article.get(position).getCodArt());
            holder.LibArt.setText(article.get(position).getLibArt());
            holder.PrixTTC.setText(article.get(position).getPrixTTC());
            return convertView;
     
        }
     
     
        public Filter getFilter() {
     
             return new Filter() {
     
     
             @SuppressWarnings("unchecked")
     
             @Override
     
             protected void publishResults(CharSequence constraint, FilterResults results) {
     
             article = (ArrayList<Article>) results.values;
     
             AdapterS.this.notifyDataSetChanged();
     
             }
     
             @Override
     
             protected FilterResults performFiltering(CharSequence constraint) {
     
             ArrayList<Article> filteredResults = getFilteredResults(constraint);
     
             FilterResults results = new FilterResults();
     
             results.values = filteredResults;
     
             return results;
     
             }
     
             private ArrayList<Article> getFilteredResults(CharSequence constraint) {
     
             ArrayList<Article> filteredTeams = new ArrayList<Article>();
     
             for(int i=0;i< article.size();i++){
     
             if(article.get(i).getLibArt().toLowerCase().startsWith(constraint.toString().toLowerCase())){
     
             filteredTeams.add(article.get(i));
     
             }
     
             }
     
             return filteredTeams;
     
             }
     
             };
     
             }
    }

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 169
    Points : 171
    Points
    171
    Par défaut
    Es-tu sûr que dans le fichier produit_row, il y a un TextView nommé pid ?

    Sinon il faut que tu tests chacun des objets suivants:
    article
    article.get(position)
    article.get(position).getPid()

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    au début j'ai pas trouvé un "pid" dans le fichier "produit_row" donc je l'ai ajouté mais le problème persiste dans la même ligne

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 169
    Points : 171
    Points
    171
    Par défaut
    Sauvegarde, fais un project->clean et réessaye.
    Sinon continue de faire ce que je t'ai dis juste avant, à savoir:
    Il faut que tu tests chacun des objets suivants:
    article
    article.get(position)
    article.get(position).getPid()
    Tu peux t'aider de Log.d(String tag, String text) pour t'aider

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Merci infiniment, ça fonctionne très bien maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 31/05/2011, 10h40
  2. erreur compilation java.lang.NullPointerException
    Par muslim1987 dans le forum JDBC
    Réponses: 6
    Dernier message: 26/06/2008, 09h16
  3. Erreur exception java.lang.NullPointerException
    Par geol99 dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2007, 20h24
  4. erreur de java.lang.NullPointerException
    Par vince351 dans le forum Langage
    Réponses: 1
    Dernier message: 25/03/2007, 12h29

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