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 :

[Debutant] erreur "java.lang.NullPointerException" android


Sujet :

Android

  1. #1
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut [Debutant] erreur "java.lang.NullPointerException" android
    Bonjour,

    Le log cat me renvoit comme erreur :"java.lang.NullPointerException",Et je ne sais pas pk?Eclipse qd a lui ne ren voit aucune erreur.

    Voila mon code:
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    public class MainActivity extends ActionBarActivity implements ImageGetter{
     
     
       //Definnition des boutons
        Button b_aGras= null,b_aItalique= null,b_aSouligne= null;//a=apparence
        ImageButton b_sSmiley1= null,b_sSmiley2= null,b_sSmiley3= null;//s=smiley
        Button b_cNoir= null,b_cBleu= null,b_cRouge= null;//c=couleur
        //FIN:Definnition des boutons
     
        //--------Gere la mise en forme------------
        private OnClickListener miseEnFormeListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              /* Réagir au clic pour les boutons*/
            	EditText txtR01= (EditText)findViewById(R.id.editTxt);//txR01=text rentre 01//Cette ligne de code ns permet de recuperer le txt rentré
            	//
            	if(v.getId()==b_aGras.getId()){
            	txtR01.setText("<b></b>");
            	}
            	if(v.getId()==b_aItalique.getId()){
                	txtR01.setText("<i></i>");
                	}
            	if(v.getId()==b_aSouligne.getId()){
                	txtR01.setText("<u></u>");
                	}
            	//
            	String txtR02=txtR01.getText().toString();//Cette ligne de code ns permet de convertir le txt rentre en "String"
            	TextView txtV=(TextView)findViewById(R.id.viewTxt);//On attribut a une variable "l'emplacemt" du txtView
            	txtV.setText(Html.fromHtml(txtR02));//Ca ls permet de convertir ce qui est ecrit en balis "Html" est ainsi d'afficher le resultat
            }
          };
        //--------FIN:Gere la mise en forme--------
     
     
        //--------Gere la couleur------------------
          private OnClickListener couleurListener = new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                /* Réagir au clic pour les boutons*/
              	EditText txtR01= (EditText)findViewById(R.id.editTxt);//txR01=text rentre 01//Cette ligne de code ns permet de recuperer le txt rentré
              	//
              	if(v.getId()==b_cNoir.getId()){
              	txtR01.setText("<font color=#000000></font>");
              	b_cBleu.setEnabled(false);
              	b_cRouge.setEnabled(false);
              	}
              	if(v.getId()==b_cBleu.getId()){
                  	txtR01.setText("<font color=#0000FF></font>");
                  	b_cNoir.setEnabled(false);
                  	b_cRouge.setEnabled(false);
                  	}
              	if(v.getId()==b_cRouge.getId()){
                  	txtR01.setText("<font color=#FF0000></font>");
                  	b_cNoir.setEnabled(false);
                  	b_cBleu.setEnabled(false);
                  	}
              	//
              	String txtR02=txtR01.getText().toString();//Cette ligne de code ns permet de convertir le txt rentre en "String"
              	TextView txtV=(TextView)findViewById(R.id.viewTxt);//On attribut a une variable "l'emplacemt" du txtView
              	txtV.setText(Html.fromHtml(txtR02));//Ca ls permet de convertir ce qui est ecrit en balis "Html" est ainsi d'afficher le resultat
              }
            };
        //--------FIN:Gerer la couleur-------------
     
          //--------Gere les Smiley------------------
     
            @Override
        	public Drawable getDrawable(String source) {
        		// TODO Auto-generated method stub
        		return null;
        	}
     
            private OnClickListener smileyListener = new View.OnClickListener() {
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				EditText txtR01= (EditText)findViewById(R.id.editTxt);//txR01=text rentre 01//Cette ligne de code ns permet de recuperer le txt rentré
    	          	//
    				if(v.getId()==b_sSmiley1.getId()){
    					txtR01.setText("smiley1");//"<img src='smiley1'>"
    				}else if(v.getId()==b_sSmiley2.getId()){
    					txtR01.setText("smiley2");
    				}else{
    					txtR01.setText("smiley3");
    				}
    				//
    	          	String txtR02=txtR01.getText().toString();//Cette ligne de code ns permet de convertir le txt rentre en "String"
    	          	TextView txtV=(TextView)findViewById(R.id.viewTxt);//On attribut a une variable "l'emplacemt" du txtView
    	          	txtV.setText(Html.fromHtml(txtR02));//Ca ls permet de convertir ce qui est ecrit en balis "Html" est ainsi d'afficher le resultat
    			}  
            };
          //--------FIN:Gere les Smiley-------------  
     
        	//----Def des actions pour chaque touche---
            private void bouton(){
        	//L'Apparence
        	b_aGras = (Button) findViewById(R.id.b_aGras);
        	b_aItalique = (Button) findViewById(R.id.b_aItalique);
        	b_aSouligne = (Button) findViewById(R.id.b_aSouligne);
        	//Les Smileys
        	b_sSmiley1 = (ImageButton) findViewById(R.id.b_sSmiley1);
        	b_sSmiley2 = (ImageButton) findViewById(R.id.b_sSmiley2);
        	b_sSmiley3 = (ImageButton) findViewById(R.id.b_sSmiley3);
        	//La Couleur
        	b_cNoir = (Button) findViewById(R.id.b_cNoir);
        	b_cBleu = (Button) findViewById(R.id.b_cBleu);
        	b_cRouge = (Button) findViewById(R.id.b_cRouge);
     
        	//----Les listener----
        	//L'Apparence
        	b_aGras.setOnClickListener(miseEnFormeListener);
        	b_aItalique.setOnClickListener(miseEnFormeListener);
        	b_aSouligne.setOnClickListener(miseEnFormeListener);
        	//Les smileys
        	b_sSmiley1.setOnClickListener(smileyListener);
        	b_sSmiley2.setOnClickListener(smileyListener);
        	b_sSmiley3.setOnClickListener(smileyListener);
        	//La Couleur
        	b_cNoir.setOnClickListener(couleurListener);
        	b_cBleu.setOnClickListener(couleurListener);
        	b_cRouge.setOnClickListener(couleurListener);
            }
            //FIN:----Les listener----
     
        	//----FIN:Def des actions pour chaque touche---
     
            //-------Gere ce qui se passe automatiquement------------
            private TextWatcher watcherTxt=new TextWatcher(){
     
                EditText txtR01= (EditText)findViewById(R.id.editTxt);
                String txtR02=txtR01.getText().toString();//Cette ligne de code ns permet de convertir le txt rentre en "String"
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub
                    TextView txtV=(TextView)findViewById(R.id.viewTxt);//On attribut a une variable "l'emplacemt" du txtView
                    txtV.setText(Html.fromHtml(txtR02));//Ca ls permet de convertir ce qui est ecrit en balis "Html" est ainsi d'afficher le resultat
                }
     
                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub
                    TextView txtV=(TextView)findViewById(R.id.viewTxt);//On attribut a une variable "l'emplacemt" du txtView
                    txtV.setText(Html.fromHtml(txtR02));//Ca ls permet de convertir ce qui est ecrit en balis "Html" est ainsi d'afficher le resultat
                }
     
                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                    TextView txtV=(TextView)findViewById(R.id.viewTxt);//On attribut a une variable "l'emplacemt" du txtView
                    txtV.setText(Html.fromHtml(txtR02));//Ca ls permet de convertir ce qui est ecrit en balis "Html" est ainsi d'afficher le resultat
                }
     
            };
          //-------FIN:Gere ce qui se passe automatiquement----------
     
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
     
     
            super.onCreate(savedInstanceState);
            EditText txtR01= (EditText)findViewById(R.id.editTxt);
            bouton();
            //-------FIN:Gere ce qui se passe automatiquement----------
            txtR01.addTextChangedListener(watcherTxt);
            //----FIN/Ce qui s'affichera automatiquement----
            setContentView(R.layout.activity_main);
     
     
            //Condition si l'affichage ne marche pas------------
            if (savedInstanceState == null) {
                getSupportFragmentManager().beginTransaction()
                        .add(R.id.container, new PlaceholderFragment())
                        .commit();
            }
            //----Fin:Condition si l'affichage ne marche pas----
        }
    Pourriez vous m'aidez.
    Merci.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    Je suis aussi débutant, mais il serait mieux que tu affiches aussi le message d'erreur du logcat, car les pro te le demanderont. On peut y connaitre la nature de l'erreur exacte et surtout son emplacement dans le code.

  3. #3
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    @Thurvy//

    Ok la voila:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    05-20 18:32:40.497: E/AndroidRuntime(1001): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.tuto01.tuto_mapremiereappli/com.tuto01.tuto_mapremiereappli.MainActivity}: java.lang.NullPointerException

    Je pense que c'est la partie importante.
    Sinon le logcat en entier:
    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
    05-20 20:08:00.456: D/AndroidRuntime(1204): Shutting down VM
    05-20 20:08:00.456: W/dalvikvm(1204): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
    05-20 20:08:00.456: E/AndroidRuntime(1204): Uncaught handler: thread main exiting due to uncaught exception
    05-20 20:08:00.467: E/AndroidRuntime(1204): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.tuto01.tuto_mapremiereappli/com.tuto01.tuto_mapremiereappli.MainActivity}: java.lang.NullPointerException
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at android.app.ActivityThread.access$2200(ActivityThread.java:119)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at android.os.Looper.loop(Looper.java:123)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at android.app.ActivityThread.main(ActivityThread.java:4363)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at java.lang.reflect.Method.invokeNative(Native Method)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at java.lang.reflect.Method.invoke(Method.java:521)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at dalvik.system.NativeStart.main(Native Method)
    05-20 20:08:00.467: E/AndroidRuntime(1204): Caused by: java.lang.NullPointerException
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at android.app.Activity.findViewById(Activity.java:1612)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at com.tuto01.tuto_mapremiereappli.MainActivity$4.<init>(MainActivity.java:152)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at com.tuto01.tuto_mapremiereappli.MainActivity.<init>(MainActivity.java:150)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at java.lang.Class.newInstanceImpl(Native Method)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at java.lang.Class.newInstance(Class.java:1479)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	... 11 more
    05-20 20:08:00.486: I/dalvikvm(1204): threadid=7: reacting to signal 3
    05-20 20:08:00.486: E/dalvikvm(1204): Unable to open stack trace file '/data/anr/traces.txt': Permission denied

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2013
    Messages : 17
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    Dans le logcat, ces lignes permettent d'identifier la partie de ton code qui bug.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at android.app.Activity.findViewById(Activity.java:1612)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at com.tuto01.tuto_mapremiereappli.MainActivity$4.<init>(MainActivity.java:152)
    05-20 20:08:00.467: E/AndroidRuntime(1204): 	at com.tuto01.tuto_mapremiereappli.MainActivity.<init>(MainActivity.java:150)
    Pour l'erreur, je pense qu'elle provient de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     @Override
        protected void onCreate(Bundle savedInstanceState) {
     
     
            super.onCreate(savedInstanceState);
            EditText txtR01= (EditText)findViewById(R.id.editTxt);
            bouton();
            //-------FIN:Gere ce qui se passe automatiquement----------
            txtR01.addTextChangedListener(watcherTxt);
            //----FIN/Ce qui s'affichera automatiquement----
            setContentView(R.layout.activity_main);
    ...
    }
    Il faut appeler "setContentView" avant de rechercher les vues.

    En déplaçant ton setContentView comme ci-dessous, ça devrait fonctionner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     @Override
        protected void onCreate(Bundle savedInstanceState) {
     
     
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main); // J'ai déplacé cette ligne
            EditText txtR01= (EditText)findViewById(R.id.editTxt);
            bouton();
            //-------FIN:Gere ce qui se passe automatiquement----------
            txtR01.addTextChangedListener(watcherTxt);
            //----FIN/Ce qui s'affichera automatiquement----
     
    ...
    }

  5. #5
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    @lemalo//
    bjr,

    Merci a toi,
    J'ai deja essaye comme ca mais ca ne marche pas aussi.

  6. #6
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    Les lignes correspondantes aux lignes du log cat st:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            //-------Gere ce qui se passe automatiquement------------
            private TextWatcher watcherTxt=new TextWatcher(){
     
                EditText txtR01= (EditText)findViewById(R.id.editTxt);

  7. #7
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    Slt,

    Prb:
    Résolu il fallait mettre comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtR01.addTextChangedListener(new TextWatcher() {
    au lieu de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtR01.addTextChangedListener(watcherTxt);
    Voila,
    Mais je ne trouve pas ca tres propre.Par propre je veux dire que je n'aime pas que la methode "on create()" soit trop "longue",trop"chargée".Si qqun a une autre solution je prends .
    Je mets donc le prb resolu mais la sol au prb ne me satisfait pas.

    Merci a vs.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 31/05/2011, 10h40
  2. erreur compilation java.lang.NullPointerException
    Par muslim1987 dans le forum JDBC
    Réponses: 6
    Dernier message: 26/06/2008, 09h16
  3. Erreur exception java.lang.NullPointerException
    Par geol99 dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2007, 20h24
  4. erreur de java.lang.NullPointerException
    Par vince351 dans le forum Langage
    Réponses: 1
    Dernier message: 25/03/2007, 12h29

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