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

Java Discussion :

java.lang.NullPointerException: Attempt to get length of null array


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Par défaut java.lang.NullPointerException: Attempt to get length of null array
    salut a tous

    j'ai une erreur que j'arrive pas a résoudre !

    j'ai déclarer un tableaux globalement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double[][] StationTram1;
    et je l'ai initialisé et remplie a l'aide d'une méthode depuis une base de donnée

    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
     public void onResponse(String response) {
     
                            try {
     
                                JSONObject jsonObj = new JSONObject(response);
                                JSONArray jsonArray = jsonObj.getJSONArray("markers");
     
     
                                double [][] StationTram1 = new double [jsonArray.length()][2];
     
                                for (int i = 0; i < jsonArray.length(); i++) {
                                    jresponse = jsonArray.getJSONObject(i);
                                    StationTram1[i][0]=Double.parseDouble(jresponse.getString("lng"));
                                    StationTram1[i][1]=Double.parseDouble(jresponse.getString("lat"));
                                }
                                for ( double[] point1 : StationTram1){
                                    Log.i("lng",String.valueOf(point1[0]) );
                                }
     
     
     
     
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                            //pDialog.dismiss();
     
                        }
     
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                        }
                    }) {
                @Override
                protected Map<String, String> getParams() {
                    Map<String, String> params = new HashMap<String, String>();
     
                    return params;
                }
     
            };
     
            RequestQueue requestQueue = Volley.newRequestQueue(MapsActivity.this);
            requestQueue.add(stringRequest);
    je n peux pas l'inisitailisé "globalement" vu qu'il prend la taille de la table qu'elle est en base
    maintenant quand je veux calculé la distance

    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
     for(double[] point : StationTram1) {
     
                LatLng to = new LatLng(point[0], point[1]);
                //Calculating the distance in meters
                int distanceLambda = (int) SphericalUtil.computeDistanceBetween(from, to);
     
     
     
                if (distanceLambda < distance) { // cette distance est donc plus petite que la plus petite distance déjà trouvée
                    distance = distanceLambda;
                    Latitude1 = point[0];
                    Longitude1 = point[1];
     
                }
     
            }

    j'ai une erreur : java.lang.NullPointerException: Attempt to get length of null array

  2. #2
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Billets dans le blog
    55
    Par défaut
    il doit aussi te dire quelle est la ligne qui lève une erreur
    Développeur Java
    Site Web

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Par défaut
    Citation Envoyé par autran Voir le message
    il doit aussi te dire quelle est la ligne qui lève une erreur

    l'erreur est au niveau de la boucle for etendu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      for(double[] point : StationTram1)

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 12
    Par défaut
    Salut,

    StationTram1 doit être null. Faut peut être vérifier la façon dont tu le fais.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Par défaut
    Citation Envoyé par medzila Voir le message
    Salut,

    StationTram1 doit être null. Faut peut être vérifier la façon dont tu le fais.
    je l'ai remplie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       JSONObject jsonObj = new JSONObject(response);
                                JSONArray jsonArray = jsonObj.getJSONArray("markers");
     
     
                                double [][] StationTram1 = new double [jsonArray.length()][2];
     
                                for (int i = 0; i < jsonArray.length(); i++) {
                                    jresponse = jsonArray.getJSONObject(i);
                                    StationTram1[i][0]=Double.parseDouble(jresponse.getString("lng"));
                                    StationTram1[i][1]=Double.parseDouble(jresponse.getString("lat"));
                                }
                                for ( double[] point1 : StationTram1){
                                    Log.i("lng",String.valueOf(point1[0]) );
                                }
    le soucis c'est qu'il déclarer localement du coup comment pourrai-je faire la liaison ! ?

  6. #6
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Citation Envoyé par abbescr7 Voir le message
    je l'ai remplie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       JSONObject jsonObj = new JSONObject(response);
                                JSONArray jsonArray = jsonObj.getJSONArray("markers");
     
     
                                double [][] StationTram1 = new double [jsonArray.length()][2];
     
                                for (int i = 0; i < jsonArray.length(); i++) {
                                    jresponse = jsonArray.getJSONObject(i);
                                    StationTram1[i][0]=Double.parseDouble(jresponse.getString("lng"));
                                    StationTram1[i][1]=Double.parseDouble(jresponse.getString("lat"));
                                }
                                for ( double[] point1 : StationTram1){
                                    Log.i("lng",String.valueOf(point1[0]) );
                                }
    le soucis c'est qu'il déclarer localement du coup comment pourrai-je faire la liaison ! ?

    Tu ne remplis pas la bonne variable.

    Vu que tu fait "double [][] StationTram1 = new double [jsonArray.length()][2];" c'est une version locale à ta méthode de StationTram1 que tu instancie et non ta variable globale.

    Enlève la déclaration de type de cette ligne et ça ira mieux ( StationTram1 = new double [jsonArray.length()][2]; ), Tu n'aura au moins plus 2 versions différentes même si là je ne vois pas trop pourquoi il n'utilise pas la bonne (ou alors tu n'a pas retranscrit exactement ton code et la boucle for est dans une autre méthode)

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 12
    Par défaut
    C'est difficile de te répondre si on ne peut pas voir la construction de tes méthodes etc.
    StationTram1 que tu utilise pour calculer les distances est celui qui est déclaré localement ou globalement ?
    Le soucis est que quand tu sors de ta méthode qui rempli ton tableau local, celui-ci n'est plus utilisé...

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/04/2014, 15h14
  2. Probleme erreur java.lang.NullPointerException
    Par Tsukaasa dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2006, 18h19
  3. Réponses: 8
    Dernier message: 11/05/2006, 19h32
  4. [JDIC]Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Par kedare dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 06/05/2006, 22h45
  5. java.lang.NullPointerException getparent()
    Par guano dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 17/03/2006, 17h38

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