Problème création d'application android
nachding
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, :D
Je suis depuis quelques semaines le cours "créez vos application android" de Openclassroom est j'ai un problème pour le TP qui consiste à créer une application : Calculez votre IMC. Lorsque que je clique sur le bouton calculer, l'application quitte inopinément :( Voici mon code Java :
Voici mon logcat :
Merci d'avance !
Je suis depuis quelques semaines le cours "créez vos application android" de Openclassroom est j'ai un problème pour le TP qui consiste à créer une application : Calculez votre IMC. Lorsque que je clique sur le bouton calculer, l'application quitte inopinément :( Voici mon code Java :
package com.zestedesavoir.mapremiereapplication; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnKeyListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity{ private final String defaut = "Veuillez cliquer sur le bouton "Calculer IMC" pour calculer votre IMC"; Button calculer = null; Button raz = null; EditText poids = null; EditText taille = null; RadioGroup group = null; TextView result = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); calculer = (Button)findViewById(R.id.button1); raz = (Button)findViewById(R.id.button2); poids = (EditText)findViewById(R.id.editText1); taille = (EditText)findViewById(R.id.editText2); group = (RadioGroup)findViewById(R.id.radioGroup); result=(TextView)findViewById(R.id.textView4); calculer.setOnClickListener(clickListener); poids.addTextChangedListener(textWatcher); taille.addTextChangedListener(textWatcher); raz.setOnClickListener(onClickRaz); } private TextWatcher textWatcher = new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { result.setText(defaut); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { } }; private OnClickListener clickListener = new OnClickListener() { @Override public void onClick(View v) { String t = taille.getText().toString(); String p = poids.getText().toString(); float pValue = Float.valueOf(p); float tValue = Float.valueOf(t); if(group.getCheckedRadioButtonId()==R.id.radioButton1) { tValue = tValue/100; } tValue = (float)Math.pow(tValue, 2); float imc = 0; imc = pValue/tValue; result.setText("Votre IMC est de : "+String.valueOf(imc)); } }; private OnClickListener onClickRaz = new OnClickListener() { @Override public void onClick(View v) { poids.getText().clear(); taille.getText().clear(); result.setText(defaut); } }; }
Voici mon logcat :
10-10 20:51:53.943: E/AndroidRuntime(709): FATAL EXCEPTION: main
10-10 20:51:53.943: E/AndroidRuntime(709): java.lang.NullPointerException
10-10 20:51:53.943: E/AndroidRuntime(709): at com.zestedesavoir.mapremiereapplication.MainActivity$2.onClick(MainActivity.java:94)
10-10 20:51:53.943: E/AndroidRuntime(709): at android.view.View.performClick(View.java:3480)
10-10 20:51:53.943: E/AndroidRuntime(709): at android.view.View$PerformClick.run(View.java:13983)
10-10 20:51:53.943: E/AndroidRuntime(709): at android.os.Handler.handleCallback(Handler.java:605)
10-10 20:51:53.943: E/AndroidRuntime(709): at android.os.Handler.dispatchMessage(Handler.java:92)
10-10 20:51:53.943: E/AndroidRuntime(709): at android.os.Looper.loop(Looper.java:137)
10-10 20:51:53.943: E/AndroidRuntime(709): at android.app.ActivityThread.main(ActivityThread.java:4340)
10-10 20:51:53.943: E/AndroidRuntime(709): at java.lang.reflect.Method.invokeNative(Native Method)
10-10 20:51:53.943: E/AndroidRuntime(709): at java.lang.reflect.Method.invoke(Method.java:511)
10-10 20:51:53.943: E/AndroidRuntime(709): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
10-10 20:51:53.943: E/AndroidRuntime(709): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
10-10 20:51:53.943: E/AndroidRuntime(709): at dalvik.system.NativeStart.main(Native Method)
10-10 20:51:55.579: I/Process(709): Sending signal. PID: 709 SIG: 9
Merci d'avance !
A voir également:
- Problème création d'application android
- Comment supprimer une application préinstallée sur android - Guide
- Android recovery - Guide
- Application se ferme toute seule android - Guide
- Desinstaller application windows - Guide
- Creation compte gmail - Guide
1 réponse
Bonjour,
Il faut absolument apprendre à lire une exception, tu en auras très souvent et tu dois savoir comment les corriger sans passer par un forum à chaque fois.
Déjà, si tu ne sais pas ce qu'est un NullPointerException, tu vas lire sa documentation :
https://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html
Ensuite, tu retrouves la ligne de code concerné, donc ligne 94 de MainActivity :
Ici il n'y a que
À toi maintenant de corriger le code de manière à ne jamais utiliser ton appel
Il faut absolument apprendre à lire une exception, tu en auras très souvent et tu dois savoir comment les corriger sans passer par un forum à chaque fois.
java.lang.NullPointerException at com.zestedesavoir.mapremiereapplication.MainActivity$2.onClick(MainActivity.java:94)
Déjà, si tu ne sais pas ce qu'est un NullPointerException, tu vas lire sa documentation :
https://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html
Ensuite, tu retrouves la ligne de code concerné, donc ligne 94 de MainActivity :
if(group.getCheckedRadioButtonId()==R.id.radioButton1)
Ici il n'y a que
groupqui pourrai provoquer un NPE, cela signifie que
group==null.
À toi maintenant de corriger le code de manière à ne jamais utiliser ton appel
group.getCheckedRadioButtonId()lorsque tu as
group==null.