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


Sujet :

Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Par défaut java lang NullPointerException
    Bonjour,

    Lorsque je run mon programme java, j'ai cette exception qui m'embête :
    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
     
    run:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
            at cleanfiles.RetagMp3.ReadMp3(RetagMp3.java:209)
            at cleanfiles.RetagMp3.ReadInfoAlbum(RetagMp3.java:98)
            at cleanfiles.RetagMp3.RetagAlbum(RetagMp3.java:80)
            at cleanfiles.RetagMp3.RetagAllAlbums(RetagMp3.java:65)
            at cleanfiles.RenameMp3.jbtRetagMp3MouseClicked(RenameMp3.java:163)
            at cleanfiles.RenameMp3.access$100(RenameMp3.java:18)
            at cleanfiles.RenameMp3$2.mouseClicked(RenameMp3.java:82)
            at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253)
            at java.awt.Component.processMouseEvent(Component.java:6266)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
            at java.awt.Component.processEvent(Component.java:6028)
            at java.awt.Container.processEvent(Container.java:2041)
            at java.awt.Component.dispatchEventImpl(Component.java:4630)
            at java.awt.Container.dispatchEventImpl(Container.java:2099)
            at java.awt.Component.dispatchEvent(Component.java:4460)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4247)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
            at java.awt.Container.dispatchEventImpl(Container.java:2085)
            at java.awt.Window.dispatchEventImpl(Window.java:2475)
            at java.awt.Component.dispatchEvent(Component.java:4460)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Je ne sais pas du tout par ou commencer tellement il y a de lignes...

    Si quelque peut éclairé ma lanterne ou directement peut me dire de quoi vient le problème...

    Je vous remercie d'avance!!!

    ++

  2. #2
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Le problème est arrivé ligne 209 du fichier RetagMP3 dans la méthode ReadeMP3
    C'est une NullPointerException, c'est à dire que tu appelles une méthode sur un objet null.

    Sans le code source de cette fonction, c'est tout ce qu'on peut te dire

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Par défaut
    Salut Jidefix !

    Il me semble que tu participes souvent à mes problèmes
    Je t'en remercie...
    Pour ton information, je te met le code de ma fonction ReadMp3 :
    (La ligne 209 correspond à la ligne Album.Track[i].NoTrack = Champs[0]
    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
        public static tAlbum ReadMp3 (tInfoAlbums InfoAlbums, tAlbum Album)
        {
            File PathDirMp3 = new File(InfoAlbums.PathAlbum+"\\"+InfoAlbums.CurrentAlbum);
            //Liste les fichiers de l'album
            File [] TrackList = PathDirMp3.listFiles();
     
            //Champs
            String [] Champs;
     
            //Pour chaque Mp3
            for(int i=0 ; i<TrackList.length ; i++)
            {
                if(IsMp3(TrackList[i].getName()))
                {
                    //Sépare les champs des mp3 (NoTrack, Artiste, Album)
                    Champs = TrackList[i].getName().split(" - ");
     
                    //Récupère le titre et le No de la piste
                    Album.Track[i].NoTrack = Champs[0];
                    Album.Track[i].Title = Champs[2];
                }
            }
     
            return Album;
        }
    Je te donne également mes "types" :

    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
        //Type d'information sur les albums (Genre, Chemin des albums, et type)
        static class tInfoAlbums{
            public String Genre;
            public String PathAlbum;
            public boolean TypeAlbum;
            public String CurrentAlbum;
        }
     
        //Type d'information sur un MP3
        static class tTrack {
            String NoTrack;
            String Title;
        }
     
        //Type d'information sur l'album (Artiste, Album, Année...)
        static class tAlbum {
            int Year;
            String Artist;
            String Album;
            tTrack [] Track;
            File Picture;
        }
    Voilà, voilà !

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    dans ton "for" : "PathDirMp3.length()" , ça ne va pas je pense

  5. #5
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Ah oui c'est vrai bah rebonjour!

    Allez je propose quatre solutions:

    A) Album est null, il faut regarder dans la méthode appelante pour voir ce qui est passé en paramètre
    B) Album.Track est null. Il faut initialiser le tableau avant d'accéder à l'une de ses cases
    C) Album.Track[i] est null. Il faut initialiser chaque case avant de la modifier.
    D) La réponse D.

    J'ajouterai un truc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Album.Track[i].NoTrack = Champs[0];// Inutile car écrasé par la ligne juste en dessous
                    Album.Track[i].NoTrack = Champs[1];
                    Album.Track[i].Title = Champs[2];

  6. #6
    Invité
    Invité(e)
    Par défaut
    nan mais il boucle sur la taille d'un "File" : ça va pas !
    il faut boucler sur la taille du tableau que tu récupères !

    PS : revoir aussi les conventions de nommage

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Par défaut
    Oui merci Pierre, j'ai modifié cette boucle dans mon code et dans mon second post (je sais pas ce que j'ai fais :p). Et merci pour les conventions de nommage si tu as un site pour cela ca m'aiderait vraiment...

    Mais l'erreur persiste!

    Je suis donc d'accord, après avoir vérifié, mon tableau n'est pas initialisé.

    Mais heu... Je comptais l'initialisé quand je mettais des valeurs à l'intérieur...

    Comment puis-je faire dans cette méthode pour l'initialisé avec le nombre de fichier trouvés ?

    Merci de votre aide mes amis!

  8. #8
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Album.Track = new tTrack[TrackList.length];
    A placer juste avant ta boucle for.

    De plus au début de chaque itération de la boucle, tu dois aussi initialiser chaque case avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Album.Track[i] = new tTrack();
    Pour les conventions, en bref:
    - les variables et noms de méthodes commencent par une minuscule
    - les classes par une majuscules (un peu l'inverse de ce que tu as fait en fait )

    Il y en a d'autres mais déjà ces deux là clarifieraient grandement ton code!

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Par défaut
    Je vous remercie, plus d'erreur et je note cela dans ma petite bible

    Ok pour les conventions, je vais reprendre mon code et remettre tout ca en ordre!

    Je pense avoir encore des problèmes avant la fin de mon développement et si pour mes interlocuteurs mon texte peut être lisible plus rapidement je peux bien faire l'effort!

    Encore merci!

    Et à bientot je suppose...

    Bonne soirée !

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

Discussions similaires

  1. java.lang.NullPointerException
    Par kamaldev dans le forum Struts 1
    Réponses: 12
    Dernier message: 28/06/2006, 19h45
  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