DevAndroid Posté(e) 14 juin 2010 Share Posté(e) 14 juin 2010 (modifié) Salut, Voila, j'ai un probleme : package com.enigme.myclasses;import android.app.Activity; import android.app.ListActivity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.TableLayout; import android.widget.Toast; public class Profil extends ListActivity { String nom = "Android"; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, mStrings)); getListView().setTextFilterEnabled(true);} private String[] mStrings = {nom}; Ce code source marche parfaitement mais celui ci plante : package com.enigme.myclasses;import android.app.Activity; import android.app.ListActivity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.TableLayout; import android.widget.Toast; public class Profil extends ListActivity { SharedPreferences util = PreferenceManager.getDefaultSharedPreferences(this); String nom = util.getString("nom", null); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, mStrings)); getListView().setTextFilterEnabled(true);} private String[] mStrings = {nom}; Pourquoi?? J'utilise juste SharedPreference a la place d'une variable String. Modifié 17 juin 2010 par DevAndroid Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 14 juin 2010 Share Posté(e) 14 juin 2010 String nom = util.getString("nom", ""); :-p Tu aurais trouvé ta solution en regardant le LogCat ( outil indispensable) qui t'affichera un nullpointerexception. En gros, un champs de texte vide et 'null' sont deux choses totalement différentes. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
DevAndroid Posté(e) 14 juin 2010 Auteur Share Posté(e) 14 juin 2010 (modifié) Desoler mais la modif ne change rien Jai pourtant effectuer ta modification package com.enigme.myclasses;import android.app.Activity; import android.app.ListActivity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.TableLayout; import android.widget.Toast; public class profil extends ListActivity { SharedPreferences util = PreferenceManager.getDefaultSharedPreferences(this); String nom = util.getString("nom", ""); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, mStrings)); getListView().setTextFilterEnabled(true);} private String[] mStrings = {nom}; } Modifié 14 juin 2010 par DevAndroid Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bagahe Posté(e) 14 juin 2010 Share Posté(e) 14 juin 2010 Bonjour, Je n'ai pas encore les automatiques pour voir les erreurs de syntaxe et autre mais si tu pouvais nous poster le contenu du LogCat on en saura plus je pense. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 14 juin 2010 Share Posté(e) 14 juin 2010 peut-être mettre String nom = util.getString("nom", "nimportequoi"); Sinon, je plussoie le logcat, c'est un outil indispensable à tout dev. Ca fait partie d'Eclipse et tu devrais le trouver facilement. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
DevAndroid Posté(e) 14 juin 2010 Auteur Share Posté(e) 14 juin 2010 (modifié) Ouais ok Le probleme cest qu'il n'y a rien dans le LogCat et jai essaye avec "nimportekoi" meme chose. Modifié 14 juin 2010 par DevAndroid Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
DevAndroid Posté(e) 15 juin 2010 Auteur Share Posté(e) 15 juin 2010 Up! Sil vous plait aidez moi je suis en galere j'ai tout essayé. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bagahe Posté(e) 15 juin 2010 Share Posté(e) 15 juin 2010 (modifié) Alors, la comme ça je n'ai pas d'idée. MAIS, pendant mes heures de debug ces derniers jours, je me suis rendu compte que pour afficher le LogCat sur un de mes problèmes je devait relancer l'application à partir de l'émulateur avec le LogCat derrière (en gros tu clique pour forcer la fermeture et tu vas dans le menu de ton émulateur pour relancer l'application). Si il y a une erreur il va forcement l'indiquer, sans ces informations je ne vois pas comment t'aider. Edit : Par contre par curiosité pourquoi voit-on que tes "imports" (?) sont en warning (soulignés en jaune/orange)? Modifié 15 juin 2010 par Bagahe Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
DevAndroid Posté(e) 15 juin 2010 Auteur Share Posté(e) 15 juin 2010 (modifié) J'ai essayer, sa marche toujours pas , mais il faut pas le configurer le LogCat?? Voila ce que me dit "Console" quand j'affiche le LogCat: [2010-06-15 12:03:04 - Logcat]device (emulator-5554) request rejected: device not found java.io.IOException: device (emulator-5554) request rejected: device not found at com.android.ddmlib.AdbHelper.setDevice(Unknown Source) at com.android.ddmlib.AdbHelper.executeRemoteCommand(Unknown Source) at com.android.ddmlib.Device.executeShellCommand(Unknown Source) at com.android.ddmuilib.logcat.LogPanel$3.run(Unknown Source) Edit: mes import son en warning parce que je ne les utilisent pas mais sa n'influe pas sur l'application Modifié 15 juin 2010 par DevAndroid Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bagahe Posté(e) 15 juin 2010 Share Posté(e) 15 juin 2010 Dans le LogCat, les erreurs apparaissent en rouge. Tu as des filtres au dessus de l'onglet : Essaye de voir ce qu'il te marque quand tu clique sur "E" Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
DevAndroid Posté(e) 15 juin 2010 Auteur Share Posté(e) 15 juin 2010 C'est bon!! Le LogCat affiche les erreurs : 06-15 12:05:44.160: INFO/ActivityManager(59): Starting activity: Intent { cmp=com.enigme.myclasses/.profil } 06-15 12:05:44.230: DEBUG/AndroidRuntime(299): Shutting down VM} 06-15 12:05:44.230: WARN/dalvikvm(299): threadid=1: thread exiting with uncaught exception (group=0x4001d800)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): FATAL EXCEPTION: main} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.enigme.myclasses/com.enigme.myclasses.profil}: java.lang.NullPointerException} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.ActivityThread.access$2300(ActivityThread.java:125)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.os.Handler.dispatchMessage(Handler.java:99)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.os.Looper.loop(Looper.java:123)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.ActivityThread.main(ActivityThread.java:4627)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at java.lang.reflect.Method.invokeNative(Native Method)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at java.lang.reflect.Method.invoke(Method.java:521)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at dalvik.system.NativeStart.main(Native Method)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): Caused by: java.lang.NullPointerException} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.content.ContextWrapper.getPackageName(ContextWrapper.java:120)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:353)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:348)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at com.enigme.myclasses.profil.(profil.java:11)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at java.lang.Class.newInstanceImpl(Native Method)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at java.lang.Class.newInstance(Class.java:1429)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)} 06-15 12:05:44.250: ERROR/AndroidRuntime(299): ... 11 more} 06-15 12:05:44.270: WARN/ActivityManager(59): Force finishing activity com.enigme.myclasses/.profil 06-15 12:05:44.270: WARN/ActivityManager(59): Force finishing activity com.enigme.myclasses/.main 06-15 12:05:44.770: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{43fc2fb0 com.enigme.myclasses/.profil} 06-15 12:05:55.050: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{43fd5398 com.enigme.myclasses/.main} 06-15 12:05:55.070: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{43fc2fb0 com.enigme.myclasses/.profil} Voila Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
DevAndroid Posté(e) 15 juin 2010 Auteur Share Posté(e) 15 juin 2010 Bagahe au secours!!!!!! :) :lol: Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bagahe Posté(e) 15 juin 2010 Share Posté(e) 15 juin 2010 Désolé suis au bureau et je croule un peu depuis le début l'après midi :) Tu as bien un "NullPointerException" dans ton LogCat, tu peux nous poster ton XML avec ? Parce que pour l'instant je ne vois pas d'erreur flagrante sur ton code, il se peux que ce soit juste un soucis de frappe/identification (j'en ai eu plein :)) Et j'essaye de repasser par ici pas trop tard, mais je ne peux pas te promettre un retour immédiat ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
DevAndroid Posté(e) 15 juin 2010 Auteur Share Posté(e) 15 juin 2010 J'ai juste sa dans mon XML <?xml version="1.0" encoding="UTF-8"?> android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="false" android:background="@drawable/wallpaper"> Sa taiserat a rien je crois Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
eephyne Posté(e) 15 juin 2010 Share Posté(e) 15 juin 2010 SharedPreferences util = PreferenceManager.getDefaultSharedPreferences(this); je crois pas qu'on puisse faire ça avant le onCreate() Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
DevAndroid Posté(e) 15 juin 2010 Auteur Share Posté(e) 15 juin 2010 (modifié) sa change rien Modifié 15 juin 2010 par DevAndroid Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
eephyne Posté(e) 15 juin 2010 Share Posté(e) 15 juin 2010 quand je dit ça je parle de faire SharedPreferences util = null; et dans le onCreate util = PreferenceManager.getDefaultSharedPreferences(this); Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
DevAndroid Posté(e) 15 juin 2010 Auteur Share Posté(e) 15 juin 2010 Desoler sa change rien (encore une fois) :( :mad: :mad: :mad: Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bagahe Posté(e) 16 juin 2010 Share Posté(e) 16 juin 2010 J'ai regarder un peu les fonctions que tu utilises, je me suis demandé si tu étais bien sûr que la donnée "nom" que tu demande existe bien ou le cas échéant si elle n'est pas à "NULL" justement. A moins que je n'ai pas compris le truc, ton soucis vient peut être de là. http://developer.android.com/reference/android/preference/PreferenceManager.html Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
eephyne Posté(e) 16 juin 2010 Share Posté(e) 16 juin 2010 Fait un debug avec des breakpoint un peu partout pour voir à quel moment ça te fait un nullpointer, ça limitera déjà les possibilités Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 16 juin 2010 Share Posté(e) 16 juin 2010 (modifié) As-tu bien mis ces 2 lignes après le super.onCreate : util = PreferenceManager.getDefaultSharedPreferences(this); String nom = util.getString("nom", ""); Modifié 16 juin 2010 par Fluckysan Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
DevAndroid Posté(e) 16 juin 2010 Auteur Share Posté(e) 16 juin 2010 J'ai trouvé Merci!!!! Mille fois merci :D :D Merci pour la patience de Bagahe Merci pour les suggestion de eephyne et Merci pour l'indication qui ma permis de trouver la solution Fluckysan Merci encore! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 17 juin 2010 Share Posté(e) 17 juin 2010 Np N'oublis pas de mettre le tag [Résolu] dans le titre du topic ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.