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 ME Discussion :

getDisplay() retourne NullPointerException


Sujet :

Java ME

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Par défaut getDisplay() retourne NullPointerException
    Bonjour, bonjour!

    J'ai un souci dans une midlet.
    Dans le constructeur de la midlet, je fais un Display.getDisplay(this) et je me prends une exception NullPointerException...

    D'après la doc, cet méthode renvoie NullPointerException si l'argument est null...

    Si je mets l'appel dans le StartApp(), ça marche.
    Le problème c'est que je veux créer des objets dans le constructeur de la Midlet et que j'ai besoin de ce que retourne getDisplay() pour le faire.

    Je ne comprends d'où vient le problème... (code sur emulateur)
    Merci pour votre aide!

    Bonne après-midi!

    Harry

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2004
    Messages : 187
    Par défaut
    Ton objet n'est créé que lorsque le constructeur a été pleinement exécuté. Il est donc normal que this soit null tant que celui-ci n'est pas complètement créé.
    Il va falloir que tu revoies le design de ton appli!

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Par défaut
    Hello,

    C'est effectivement ce que je me suis dit, mais ce qui me chiffone c'est que j'ai vu pas mal d'exemple qui utilise la méthode getDisplay() dans le constructeur de la Midlet. C'est même ce qui est fait dans l'exemple d'initiation sur ce site : http://defaut.developpez.com/tutoriel/java/j2me/ .

    Alors bon effectivement, j'ai modifié l'endroit de la création, et ça marche, mais bon...

    ++

  4. #4
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut
    il n'y a aucun problème de mettre Display.getDisplay(this) dans le constructeur. Ca peut que ton problème vient d'autre chose.

  5. #5
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Par défaut
    Hello,

    Et pourtant, j'ai mis un bloc try/catch autour de l'appel et c'est bien le getDisplay qui retourne le NullPointerException.
    Peut-être un bug sur l'émulateur.

    Il n'empêche qu'il va falloir vous mettre d'accord fetchy et Abdeljabar car vos deux réponses sont contradictoires!

    Bonne après-midi

    Harry

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2004
    Messages : 187
    Par défaut
    extrait de la spec MIDP 2:
    The value returned by getCurrent() may be null. This occurs after the application has been initialized but before the first call to setCurrent().

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2007
    Messages : 51
    Par défaut
    essaye peut etre de poster ta classe MIDlet , on pourra trouver ce qui cloche.

  8. #8
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Par défaut
    Je n'ai plus mon code, je me suis débrouillé autrement. Mais ce qui me gène, c'est que finalement personne ne sait me dire si this est correctement initialisé dans le constructeur de la Midlet. (et personnelement je dirais oui)

    De plus, mes recherches sur le net m'ont conduit à des gens ayant le même problème, mais sans réelle explication!

    ++

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Par défaut
    Peut être que le code du tuto tournaient avec le profil MIDP 1.0 mais qu'il est obsolète pour le MIDP 2.0, faudrait essayer les deux
    (normalement il y est sencé y avoir une compatibilité ascendant mais bon...)

    ou alors ca vient peut etre de l'émulateur...

    Pourrais tu détailler la configuration que tu utilises (version du cldc, du midp, de l'émulateur) stp?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Par défaut
    C'est marrant je viens de tester le code du tuto et il ne marche pas non plus chez moi.... (même erreur, java.lang.NullPointerException)

    Configuration :
    J2ME Wireless Toolkit 2.2

    Code testé avec en MIDP 1.0, et en MIDP 2.0 (CLDC 1.1)

    Quelqu'un sait d'où vient l'erreur ?

  11. #11
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut
    Essayes de tester ces deux classes (ne t’en faites pas pour le nom de la classe 3D), si ça ne marche pas alors tu as un problème dans la configuration et si ça marche donc tu as un problème dans ton code.
    Fichiers attachés Fichiers attachés

  12. #12
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Par défaut
    Salut,

    Citation Envoyé par Abdeljabar Voir le message
    si ça ne marche pas alors tu as un problème dans la configuration et si ça marche donc tu as un problème dans ton code.
    Et quel est l'argument qui te permet d'affirmer ça?

    Merci pour un éclaircissement

    ++

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2007
    Messages : 51
    Par défaut
    Les classes qu'il ta fournis fonctionne, testé par moi même, donc chez toi tu as toujours le probleme de NullPointerExeption, ben cela viens de ta configuration de ton IDE, sinon c'est que tu as un problème dans ton code.


    "this" est bien initialiser dans le constructeur, j'ai toujours mis l'init du display dans le constructeur dans tout mes jeux.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Par défaut
    ok c cool ca marche pas chez moi....

    pas de souci à la compilation, aucun warning ou autre, mais lorsque j'éxécute (sur émulateur, et sur un téléphone windows mobile) il me lance le NullPointerException

    Bon j'ai plus qu'a tout désinstaller et réinstaller

    Dites moi Abdeljabar et crazycrowd vous utilisez quel IDE, et vous compilez avec quelle version du JDK ?

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Par défaut
    Je viens d'installer NetBeans 6.5.1, il compile avec le WTK 2.5.2 et ça marche !!

    Merci pour votre aide!


    Par contre c'est quand même bizarre, j'avais testé le code avec le WTK 2.2.1 et le JDK 3.0, qui est remplace maintenant le WTK. Autant pour le WTK 2.2 on peut dire qu'il est trop ancien, mais pour le JDK 3.0 c'est pas normal....

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2007
    Messages : 51
    Par défaut
    J'utilise aussi netbean et le WTK 2.5.2
    Par contre , pourrais tu poster le contenu de ton .jad ? ou regarder si tu as bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MIDlet-Name: Test3DMidlet
    dedans, ainsi que dans le fichier manifest dans le .jar (que tu peut ouvrir avec un winzip ou winrar)

  17. #17
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut
    Moi j'utilise eclipse et le WTK 2.5.2 et pour générer de jad et jar, j'utilise ant

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/01/2016, 16h59
  2. SQLiteDatabase.query retourne un NullPointerException
    Par Booyakha dans le forum Android
    Réponses: 3
    Dernier message: 14/11/2012, 08h08
  3. SessionFactory qui retourne NullPointerException
    Par nouraty dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 05/04/2012, 18h01
  4. CreateSqlQuery retourne nullpointerexception
    Par thaundeadboss dans le forum Hibernate
    Réponses: 0
    Dernier message: 13/07/2009, 10h57
  5. chargement image dans un JAR retournant des NullPointerException
    Par Balbuzard dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 30/11/2008, 14h00

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