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

Langage Java Discussion :

Interprétation des erreurs en Java ?


Sujet :

Langage Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut Interprétation des erreurs en Java ?
    Bonjour à tous,

    Ayant déjà quelques langages à mon actif (plus ou moins poussés) comme Python, PHP et JS, je me suis dis que le Java pouvait être intéressant. Tout du moins je voulais le connaître un peu et avoir des bases. Pour que la motivation soit au rendez-vous, je me suis dis que pour un "hardcore gamer" comme moi, le développement d'un mini-jeu serait intéressant.
    J'ai donc testé quelques moteur graphiques et j'ai retenue libgdx (Google Code).

    Finalement, je suis ennuyé par des choses bien plus basiques ... l'interprétation des erreurs me laissent perplexes
    Je comprends que j'ai un "null" au lieu d'un Vector2. Je le crée vide, c'est normal je suppose.

    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
     
    public class IsoCamTest extends GdxTest implements InputProcessor {
    	...
    	Vector2[] duo;
    	...
     
     
    	@Override public void create() {
    		...
                                  newDuo();
                                  ...
     
     
    	public void newDuo(){
    		System.out.println("tata");
    		duo[0].set(5, 18);
    		System.out.println("tutu");
    		duo[1].set(6, 18);
    		System.out.println("toto");
                   }
    J'obtiens ceci :

    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
    tata
    Exception in thread "Thread-3" javax.media.opengl.GLException: java.lang.NullPointerException
    	at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:271)
    	at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:410)
    	at javax.media.opengl.GLCanvas.display(GLCanvas.java:244)
    	at com.badlogic.gdx.backends.jogl.JoglAnimator.display(JoglAnimator.java:149)
    	at com.badlogic.gdx.backends.jogl.JoglAnimator$MainLoop.run(JoglAnimator.java:186)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: java.lang.NullPointerException
    	at com.isometric.test.IsoCamTest.newDuo(IsoCamTest.java:118)	at com.isometric.test.IsoCamTest.create(IsoCamTest.java:96)
    	at com.badlogic.gdx.backends.jogl.JoglGraphics.init(JoglGraphics.java:69)
    	at com.sun.opengl.impl.GLDrawableHelper.init(GLDrawableHelper.java:72)
    	at javax.media.opengl.GLCanvas$InitAction.run(GLCanvas.java:418)
    	at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:189)
    	at javax.media.opengl.GLCanvas$DisplayOnEventDispatchThreadAction.run(GLCanvas.java:452)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
    	at java.awt.EventQueue.access$000(EventQueue.java:84)
    	at java.awt.EventQueue$1.run(EventQueue.java:602)
    	at java.awt.EventQueue$1.run(EventQueue.java:600)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
    	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)
    AL lib: dsound.c:209: Failed to play buffer: 0x887c0032
    Vous pensez pouvoir m'aider à interprêter ceci ?

    Merci de vous être arrêté sur mon problème

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Ben, comme tu le dis, duo n'est initalisé nulle part (a priori) puis est utilisé dans newDuo(). D'ou erreurs ...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut
    C'est bien ce que je ne comprends pas.
    Je déclare ma variable duo. Puis je fais un set, c'est une initialisation ca non ?

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Il te manque un :

    quelque part
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut
    Si je remplace :

    Par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vector2[] duo = new Vector2[2];
    C'est la même chose, j'ai aussi l'erreur. J'ai besoin de stocker 2 Vector2, d'où le tableau.

    Edit :

    J'ai voulu tenter un truc pas propre pour tester, j'ai ajouté dans mon main ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		duo[0] = new Vector2();
    		duo[1] = new Vector2();
    Ce n'est certainement pas la bonne façon de faire, je me vois mal initialiser une matrice de 4*4 de cette façon par exemple.

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Bah tu n'as pas d'autres choix que de faire une boucle pour initialiser autant de fois que necessaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    duo = new Vector2[42];
    for (int i = 0 ; i < duo.length;i++)
    duo[i] = new Vector2();
    Sinon si c'est pour un matrix 4*4 il y'en a dans vecmath.jar ...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut
    Ah ... j'imaginais qu'il existait une solution plus propre qui permettait de faire ce genre de chose sans passer par des boucles.

    Bon et bien, je vais me débrouiller comme ca.
    Merci pour tes réponses à mes questions de "noob"

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

Discussions similaires

  1. Gestion des erreurs sous Java
    Par User Name dans le forum Langage
    Réponses: 4
    Dernier message: 13/01/2010, 15h24
  2. interprétation des erreurs de connexion
    Par guy_antoine_mav dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 29/08/2008, 10h00
  3. Réponses: 3
    Dernier message: 20/05/2008, 14h57
  4. Conseils sur la gestions des erreurs en Java
    Par Clorish dans le forum Général Java
    Réponses: 8
    Dernier message: 26/03/2008, 16h03
  5. Réponses: 12
    Dernier message: 21/06/2006, 09h31

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