androniennn Posted March 16, 2011 Share Posted March 16, 2011 Bonsoir, Je veux sauvegarder dans un fichier un ensemble de données au moment où je tape sur un bouton, 20% ça marche, 80% ForceClose, Voici le log logcat: 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): FATAL EXCEPTION: main 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): java.lang.NullPointerException 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:353) 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:348) 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at carburant.android.com.carburant$1.onClick(carburant.java:118) 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at android.view.View.performClick(View.java:2485) 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at android.view.View$PerformClick.run(View.java:9080) 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at android.os.Handler.handleCallback(Handler.java:587) 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at android.os.Handler.dispatchMessage(Handler.java:92) 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at android.os.Looper.loop(Looper.java:123) 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at android.app.ActivityThread.main(ActivityThread.java:3683) 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at java.lang.reflect.Method.invokeNative(Native Method) 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at java.lang.reflect.Method.invoke(Method.java:507) 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 03-16 20:52:59.080: ERROR/AndroidRuntime(1019): at dalvik.system.NativeStart.main(Native Method) 03-16 20:52:59.080: WARN/ActivityManager(68): Force finishing activity carburant.android.com/.carburant 03-16 20:52:59.854: WARN/ActivityManager(68): Activity pause timeout for HistoryRecord{406e89b8 carburant.android.com/.carburant} En fait, j'ai pas bien compris exactement la cause du FC, une erreur dans les SharedPreferences ? Voici l'extrait du code: final Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { String value1 = vol.getText().toString(); String value2 = kil.getText().toString(); if (value1 != null && value1.trim().length() > 0 && value2 != null && value2.trim().length() > 0) { float q1=Float.parseFloat(vol.getText().toString()); float q2=Float.parseFloat(kil.getText().toString()); float x=((q1 / q2)* 100); String y= Float.toString(x); cons.setText(y); SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); date = format.format(new Date()); data = date + " : " + y + " L/100km\n" + value1 + " litres "+ value2 + " km\n"; SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); if (data != "" ) { String fileName = getResources().getString(R.string.fileName); String fileDir = ""+ preferences.getString("login", "") + "."+ preferences.getString("marque", "") + "."; myIO.WriteSettings(context, fileDir + fileName, data); data = ""; } } else { Toast.makeText(carburant.this, "Veuillez vérifier les deux champs", Toast.LENGTH_LONG).show(); } } }); Merci de votre aide. Link to comment Share on other sites More sharing options...
Profete162 Posted March 16, 2011 Share Posted March 16, 2011 C'est laquelle la ligne 118 de ton code? :-D Je suppose que c'est celle ci: String fileDir = ""+ preferences.getString("login", "") + "."+ preferences.getString("marque", "") + "."; Comme c'est un nullpointerexception, je suppose que PreferenceManager.getDefaultSharedPreferences(context) renvoie null quelques lignes plus haut... Est ce que ton context est bien initialisé? Sinon, il existe getApplicationContext() qui fonctionne pas mal (ou j'ai récemment trouvé getUIContext(), mais je sais pas trop sur lequel se baser) Link to comment Share on other sites More sharing options...
androniennn Posted March 17, 2011 Author Share Posted March 17, 2011 Oui, j'ai oublié de mettre context = getApplicationContext(); . Problème résolu ;) :)! Merci Profete162. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.