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 :

NullPointerException, Mais pourquoi ?


Sujet :

Android

Vue hybride

toshiro92 NullPointerException, Mais... 06/07/2011, 16h08
tchize_ si l'erreur correspond bien à... 06/07/2011, 16h18
Feanorin Bonjour, Tu trouveras ici... 06/07/2011, 16h24
toshiro92 Le debug ne m'apporte rien de... 06/07/2011, 17h29
tchize_ tant que tu ne stocka pas de... 06/07/2011, 17h34
Feanorin private... 06/07/2011, 17h42
toshiro92 Ah oui, c'est vrai, j'avais... 06/07/2011, 17h47
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    -
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut NullPointerException, Mais pourquoi ?
    Bonjour,

    J'ai un souci avec mon application, j'ai crée mon activity de cette manière :

    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
    public class Application extends Activity {
    	
        public static final String LOG_TAG="Droidnova";
        ListView listViewActu;
        List<Actualite> listeActu = new ArrayList<Actualite>();
        private InitListViewOfApplication ILVOA;
        private ButtonListeners btnL;
        DataBaseHelper dbHelper;
        InitList il;
        
            
        public void onCreate(Bundle savedInstanceState) {
            
        	super.onCreate(savedInstanceState);
        	requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
            setContentView(R.layout.main);
            getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title);
    		
            // ---------- Constitution des logs  ------------ //
            
            int logParam =0;
            Log.v(LOG_TAG, "logParam value" + logParam);
            
            // ---------- Initialisation de l'actualité ------------ //
            
            listViewActu = (ListView)findViewById(R.id.listViewActu);
            ILVOA.initListActu(listViewActu, TypeActu.Gen, this);
            
            
            // ---------- Mise en place des ecouteurs Boutons ------------ //
            
            Button btnRecherche = (Button) findViewById(R.id.ButtonRecherche);
            Button btnDoc = (Button) findViewById(R.id.ButtonDoc);
            Button btnEns = (Button) findViewById(R.id.ButtonEns);
            Button btnPresse = (Button) findViewById(R.id.ButtonPresse);
            
            btnL.setListener(btnRecherche, "Recherche");
            btnL.setListener(btnDoc, "Doc");
            btnL.setListener(btnEns, "Ens");
            btnL.setListener(btnPresse, "Presse");
            
        }
    }
    La partie rouge est l'erreur soulignée par le LogTag, qui est le suivant :

    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
    07-06 13:53:02.692: ERROR/AndroidRuntime(745): FATAL EXCEPTION: main
    07-06 13:53:02.692: ERROR/AndroidRuntime(745): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.irdes.application/com.irdes.application.irdesApplication}: java.lang.NullPointerException
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at android.os.Handler.dispatchMessage(Handler.java:99)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at android.os.Looper.loop(Looper.java:123)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at android.app.ActivityThread.main(ActivityThread.java:3683)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at java.lang.reflect.Method.invokeNative(Native Method)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at java.lang.reflect.Method.invoke(Method.java:507)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at dalvik.system.NativeStart.main(Native Method)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745): Caused by: java.lang.NullPointerException
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at com.irdes.application.irdesApplication.onCreate(irdesApplication.java:49)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
    07-06 13:53:02.692: ERROR/AndroidRuntime(745):     11 more
    Enfin voici la méthode initListActu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void initListActu(ListView liste, TypeActu type, Context context){
     
    		List<Actualite> listeActu = mp.getListeActu();
    		List<Actualite> listeActuListView = new ArrayList<Actualite>();
     
        	for (Actualite act : listeActu){
        		if (act.getTypeActu().equals(type)){
        			listeActuListView.add(act);
        		}
        	}
    		ActuAdapter adapter = new ActuAdapter(context, listeActuListView);
    		liste.setAdapter(adapter); 
        }
    Quelle serait l'erreur ? Les logs ne m'apprennent pas grand chose sur le pourquoi du comment. Et comment savoir l'origine exacte du nullPointer ? La bdd ? la méthode ?

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si l'erreur correspond bien à la ligne en rouge:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ILVOA.initListActu(listViewActu, TypeActu.Gen, this);
    C'est que ILVOA est null.

  3. #3
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Tu trouveras ici un tutoriel sur comment déboguer ton application.
    http://nbenbourahla.developpez.com/t...s-application/

    Regarde bien la partie Debug , puis débogue ton application pas à pas, tu verras quelle variable.

    C'est que ILVOA est null.
    .

    Elle n'est pas alloué préalablement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private InitListViewOfApplication ILVOA;
    et ni dans le OnCreate

  4. #4
    Membre confirmé
    Homme Profil pro
    -
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    Le debug ne m'apporte rien de plus que NullPointerException, je n'ai pas trouvé ce qui cloche vraiment.

    Citation Envoyé par Feanorin Voir le message

    Elle n'est pas alloué préalablement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private InitListViewOfApplication ILVOA;
    et ni dans le OnCreate
    Qu'est ce que tu entends par allouer ?

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tant que tu ne stocka pas de valeur dans ce champ, il restera null. Où est-il censé s'initialiser?

  6. #6
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private InitListViewOfApplication ILVOA;
    tu déclares un objet ILVOA dans tes variables de ta classe. Ensuite tu appelles de cet objet une procédure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ILVOA.initListActu(listViewActu, TypeActu.Gen, this);
    Sauf que entres temps il faut bien créer cet objet, via un new. C'est cela alloué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ILVOA = new InitListViewOfApplication ();
    En passant tu as le même problème pour la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private ButtonListeners btnL;
    tant que tu ne stocka pas de valeur dans ce champ, il restera null. Où est-il censé s'initialiser?
    Comme te l'as fait remarquer tchize il faut que tu initialises/alloues cette variable.

    Il faut soit que tu l'initialises/alloues en la déclarant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private InitListViewOfApplication ILVOA= new InitListViewOfApplication ();
    soit dans le OnCreate avant son utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ILVOA = new InitListViewOfApplication ();
    C'est plus propre dans le OnCreate .

  7. #7
    Membre confirmé
    Homme Profil pro
    -
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    Ah oui, c'est vrai, j'avais oublié, erreur bête de ma part. Merci à tous

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

Discussions similaires

  1. mais pourquoi ce NullPointerException :/
    Par erox44 dans le forum Débuter avec Java
    Réponses: 12
    Dernier message: 29/04/2010, 11h07
  2. Un NullPointerException mais pourquoi ?
    Par Franck.H dans le forum Langage
    Réponses: 8
    Dernier message: 13/11/2006, 20h35
  3. erreur LOOP attendu , mais pourquoi?
    Par ahage4x4 dans le forum ASP
    Réponses: 10
    Dernier message: 23/05/2005, 16h22
  4. Mais pourquoi ... Avec IE les tableaux sont décentrés ?
    Par nebule dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 26/11/2004, 10h04
  5. [Execution] qtintf70.dll Mais pourquoi?
    Par Pedro dans le forum EDI
    Réponses: 4
    Dernier message: 03/06/2004, 13h23

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