Cerawyr Posté(e) 15 avril 2014 Share Posté(e) 15 avril 2014 Bonjour, Je débute tout juste dans la programmation Android. Je suis donc un tutoriel. Après avoir réalisé une première application il vient le temps de la lancer. Seulement cette dernière crash. Quand j'enlève une partie du code elle fonctionne... Voici le code : public class StartingPoint extends ActionBarActivity { int counter; Button add, sub; TextView display; @[member=override] protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_starting_point); counter = 0; add = (Button) findViewById(R.id.bAdd); sub = (Button) findViewById(R.id.bSub); display = (TextView) findViewById(R.id.tvDisplay); add.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub counter++; display.setText("Your total is "+counter); } }); sub.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub counter--; display.setText("Your total is "+counter); } }); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()) .commit(); } } Lors que je retire le code à partir de "add.setOnClickListener(new View.OnClickListener() {..." tout fonctionne... Voyez-vous une raison à cela ? Merci d'avance :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nhi Posté(e) 15 avril 2014 Share Posté(e) 15 avril 2014 Tu as une trace d'erreur dans ton logcat normalement. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cerawyr Posté(e) 22 avril 2014 Auteur Share Posté(e) 22 avril 2014 Oui même plusieurs ^^ Je pense que le problème est du à une mise à jour d'Eclipse car le tuto se fait sur une version différente et mes fichiers n'ont pas le même nom que ceux dans le tuto... 04-22 07:21:39.352: I/dalvikvm(275): Could not find method android.content.pm.PackageManager.getActivityLogo, referenced from method android.support.v7.internal.widget.ActionBarView.<init> 04-22 07:21:39.352: W/dalvikvm(275): VFY: unable to resolve virtual method 318: Landroid/content/pm/PackageManager;.getActivityLogo (Landroid/content/ComponentName;)Landroid/graphics/drawable/Drawable; 04-22 07:21:39.352: D/dalvikvm(275): VFY: replacing opcode 0x6e at 0x008b 04-22 07:21:39.362: I/dalvikvm(275): Could not find method android.content.pm.ApplicationInfo.loadLogo, referenced from method android.support.v7.internal.widget.ActionBarView.<init> 04-22 07:21:39.362: W/dalvikvm(275): VFY: unable to resolve virtual method 314: Landroid/content/pm/ApplicationInfo;.loadLogo (Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable; 04-22 07:21:39.362: D/dalvikvm(275): VFY: replacing opcode 0x6e at 0x0099 04-22 07:21:39.382: D/dalvikvm(275): VFY: dead code 0x008e-0092 in Landroid/support/v7/internal/widget/ActionBarView;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;)V 04-22 07:21:39.392: D/dalvikvm(275): VFY: dead code 0x009c-00a0 in Landroid/support/v7/internal/widget/ActionBarView;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;)V 04-22 07:21:39.652: D/AndroidRuntime(275): Shutting down VM 04-22 07:21:39.652: W/dalvikvm(275): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 04-22 07:21:39.672: E/AndroidRuntime(275): FATAL EXCEPTION: main 04-22 07:21:39.672: E/AndroidRuntime(275): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.thenewboston.jerome/com.thenewboston.jerome.StartingPoint}: java.lang.NullPointerException 04-22 07:21:39.672: E/AndroidRuntime(275): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 04-22 07:21:39.672: E/AndroidRuntime(275): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 04-22 07:21:39.672: E/AndroidRuntime(275): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 04-22 07:21:39.672: E/AndroidRuntime(275): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 04-22 07:21:39.672: E/AndroidRuntime(275): at android.os.Handler.dispatchMessage(Handler.java:99) 04-22 07:21:39.672: E/AndroidRuntime(275): at android.os.Looper.loop(Looper.java:123) 04-22 07:21:39.672: E/AndroidRuntime(275): at android.app.ActivityThread.main(ActivityThread.java:4627) 04-22 07:21:39.672: E/AndroidRuntime(275): at java.lang.reflect.Method.invokeNative(Native Method) 04-22 07:21:39.672: E/AndroidRuntime(275): at java.lang.reflect.Method.invoke(Method.java:521) 04-22 07:21:39.672: E/AndroidRuntime(275): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 04-22 07:21:39.672: E/AndroidRuntime(275): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 04-22 07:21:39.672: E/AndroidRuntime(275): at dalvik.system.NativeStart.main(Native Method) 04-22 07:21:39.672: E/AndroidRuntime(275): Caused by: java.lang.NullPointerException 04-22 07:21:39.672: E/AndroidRuntime(275): at com.thenewboston.jerome.StartingPoint.onCreate(StartingPoint.java:38) 04-22 07:21:39.672: E/AndroidRuntime(275): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 04-22 07:21:39.672: E/AndroidRuntime(275): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 04-22 07:21:39.672: E/AndroidRuntime(275): ... 11 more Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nhi Posté(e) 22 avril 2014 Share Posté(e) 22 avril 2014 Euh.... tu as essayer de remplacer actionbaractivity par activity ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cerawyr Posté(e) 22 avril 2014 Auteur Share Posté(e) 22 avril 2014 Merci pour ton aide :) Malheureusement ça ne fonctionne pas ^^ ça me crée une erreur. Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 22 avril 2014 Share Posté(e) 22 avril 2014 Les logs disent que tu as un NullPointerException en ligne de 38 de StartingPoint.java, dans la méthode onCreate. D'après tes explications et d'après le code, c'est sûrement parce que la variable 'add' est nulle, ce qui voudrait dire que le système n'a pas trouvé le bouton, lors du findViewById, dans le layout que tu as chargé (activity_starting_point). As-tu bien un bouton de défini dans ce layout, avec le bon id ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cerawyr Posté(e) 22 avril 2014 Auteur Share Posté(e) 22 avril 2014 Merci pour ton aide ! Effectivement c'est dans frangment_starting_point que se trouve mes id... quand je change l'adresse l'erreur se reproduit... je suis sûr que c'est encore une fois dû à une erreur toute bête de ma part ^^ Voici le logcat si jamais : 04-22 12:30:21.311: I/dalvikvm(307): Could not find method android.content.pm.PackageManager.getActivityLogo, referenced from method android.support.v7.internal.widget.ActionBarView.<init> 04-22 12:30:21.311: W/dalvikvm(307): VFY: unable to resolve virtual method 318: Landroid/content/pm/PackageManager;.getActivityLogo (Landroid/content/ComponentName;)Landroid/graphics/drawable/Drawable; 04-22 12:30:21.311: D/dalvikvm(307): VFY: replacing opcode 0x6e at 0x008b 04-22 12:30:21.321: I/dalvikvm(307): Could not find method android.content.pm.ApplicationInfo.loadLogo, referenced from method android.support.v7.internal.widget.ActionBarView.<init> 04-22 12:30:21.321: W/dalvikvm(307): VFY: unable to resolve virtual method 314: Landroid/content/pm/ApplicationInfo;.loadLogo (Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable; 04-22 12:30:21.321: D/dalvikvm(307): VFY: replacing opcode 0x6e at 0x0099 04-22 12:30:21.341: D/dalvikvm(307): VFY: dead code 0x008e-0092 in Landroid/support/v7/internal/widget/ActionBarView;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;)V 04-22 12:30:21.341: D/dalvikvm(307): VFY: dead code 0x009c-00a0 in Landroid/support/v7/internal/widget/ActionBarView;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;)V 04-22 12:30:21.601: E/FragmentManager(307): No view found for id 0x7f05003c (com.thenewboston.jerome:id/container) for fragment PlaceholderFragment{44f1d978 #0 id=0x7f05003c} 04-22 12:30:21.601: E/FragmentManager(307): Activity state: 04-22 12:30:21.601: D/FragmentManager(307): Local FragmentActivity 44f01a58 State: 04-22 12:30:21.601: D/FragmentManager(307): mCreated=truemResumed=false mStopped=false mReallyStopped=false 04-22 12:30:21.611: D/FragmentManager(307): mLoadersStarted=false 04-22 12:30:21.611: D/FragmentManager(307): Active Fragments in 44f02a20: 04-22 12:30:21.611: D/FragmentManager(307): #0: PlaceholderFragment{44f1d978 #0 id=0x7f05003c} 04-22 12:30:21.611: D/FragmentManager(307): mFragmentId=#7f05003c mContainerId=#7f05003c mTag=null 04-22 12:30:21.611: D/FragmentManager(307): mState=0 mIndex=0 mWho=android:fragment:0 mBackStackNesting=0 04-22 12:30:21.622: D/FragmentManager(307): mAdded=true mRemoving=false mResumed=false mFromLayout=false mInLayout=false 04-22 12:30:21.622: D/FragmentManager(307): mHidden=false mDetached=false mMenuVisible=true mHasMenu=false 04-22 12:30:21.622: D/FragmentManager(307): mRetainInstance=false mRetaining=false mUserVisibleHint=true 04-22 12:30:21.631: D/FragmentManager(307): mFragmentManager=FragmentManager{44f02a20 in StartingPoint{44f01a58}} 04-22 12:30:21.631: D/FragmentManager(307): mActivity=com.thenewboston.jerome.StartingPoint@44f01a58 04-22 12:30:21.641: D/FragmentManager(307): Added Fragments: 04-22 12:30:21.641: D/FragmentManager(307): #0: PlaceholderFragment{44f1d978 #0 id=0x7f05003c} 04-22 12:30:21.651: D/FragmentManager(307): FragmentManager misc state: 04-22 12:30:21.671: D/FragmentManager(307): mActivity=com.thenewboston.jerome.StartingPoint@44f01a58 04-22 12:30:21.671: D/FragmentManager(307): mContainer=android.support.v4.app.FragmentActivity$2@44f03328 04-22 12:30:21.681: D/FragmentManager(307): mCurState=2 mStateSaved=false mDestroyed=false 04-22 12:30:21.681: D/FragmentManager(307): View Hierarchy: 04-22 12:30:21.681: D/FragmentManager(307): com.android.internal.policy.impl.PhoneWindow$DecorView{44f06608 V.E..... ... 0,0-0,0} 04-22 12:30:21.692: D/FragmentManager(307): android.widget.FrameLayout{44f06f48 V.ED.... ... 0,0-0,0} 04-22 12:30:21.692: D/FragmentManager(307): android.widget.LinearLayout{44f07c68 V.E..... ... 0,0-0,0} 04-22 12:30:21.701: D/FragmentManager(307): android.support.v7.internal.widget.ActionBarContainer{44f08700 V.ED.... ... 0,0-0,0 #7f05001b app:id/action_bar_container} 04-22 12:30:21.701: D/FragmentManager(307): android.support.v7.internal.widget.ActionBarView{44f110c8 V.E..... ... 0,0-0,0 #7f05001c app:id/action_bar} 04-22 12:30:21.710: D/FragmentManager(307): android.widget.LinearLayout{44f15a10 G.....C. ... 0,0-0,0} 04-22 12:30:21.710: D/FragmentManager(307): android.widget.ImageView{44f16360 G.ED.... ... 0,0-0,0 #7f050021 app:id/up} 04-22 12:30:21.710: D/FragmentManager(307): android.widget.LinearLayout{44f16590 V.E..... ... 0,0-0,0} 04-22 12:30:21.721: D/FragmentManager(307): android.widget.TextView{44f16a10 V.ED.... ... 0,0-0,0 #7f050022 app:id/action_bar_title} 04-22 12:30:21.721: D/FragmentManager(307): android.widget.TextView{44f17c50 G.ED.... ... 0,0-0,0 #7f050023 app:id/action_bar_subtitle} 04-22 12:30:21.731: D/FragmentManager(307): android.support.v7.internal.widget.ActionBarView$HomeView{44f12000 VFE...C. ... 0,0-0,0} 04-22 12:30:21.731: D/FragmentManager(307): android.widget.ImageView{44f14300 G.ED.... ... 0,0-0,0 #7f050021 app:id/up} 04-22 12:30:21.741: D/FragmentManager(307): android.widget.ImageView{44f14860 V.ED.... ... 0,0-0,0 #7f050014 app:id/home} 04-22 12:30:21.741: D/FragmentManager(307): android.support.v7.internal.widget.ActionBarContextView{44f18620 G.E..... ... 0,0-0,0 #7f05001d app:id/action_context_bar} 04-22 12:30:21.751: D/FragmentManager(307): android.widget.FrameLayout{44f18fb8 V.ED.... ... 0,0-0,0 #1020002 android:id/content} 04-22 12:30:21.751: D/FragmentManager(307): android.widget.RelativeLayout{44f1a600 V.E..... ... 0,0-0,0} 04-22 12:30:21.751: D/FragmentManager(307): android.widget.TextView{44f1aa90 V.ED.... ... 0,0-0,0 #7f05003d app:id/tvDisplay} 04-22 12:30:21.760: D/FragmentManager(307): android.widget.Button{44f1b278 VFED..C. ... 0,0-0,0 #7f05003e app:id/bAdd} 04-22 12:30:21.760: D/FragmentManager(307): android.widget.Button{44f1bb68 VFED..C. ... 0,0-0,0 #7f05003f app:id/bSub} 04-22 12:30:21.771: D/FragmentManager(307): android.support.v7.internal.widget.ActionBarContainer{44f19260 G.ED.... ... 0,0-0,0 #7f05001e app:id/split_action_bar} 04-22 12:30:21.771: D/AndroidRuntime(307): Shutting down VM 04-22 12:30:21.771: W/dalvikvm(307): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 04-22 12:30:21.790: E/AndroidRuntime(307): FATAL EXCEPTION: main 04-22 12:30:21.790: E/AndroidRuntime(307): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.thenewboston.jerome/com.thenewboston.jerome.StartingPoint}: java.lang.IllegalArgumentException: No view found for id 0x7f05003c (com.thenewboston.jerome:id/container) for fragment PlaceholderFragment{44f1d978 #0 id=0x7f05003c} 04-22 12:30:21.790: E/AndroidRuntime(307): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 04-22 12:30:21.790: E/AndroidRuntime(307): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 04-22 12:30:21.790: E/AndroidRuntime(307): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 04-22 12:30:21.790: E/AndroidRuntime(307): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 04-22 12:30:21.790: E/AndroidRuntime(307): at android.os.Handler.dispatchMessage(Handler.java:99) 04-22 12:30:21.790: E/AndroidRuntime(307): at android.os.Looper.loop(Looper.java:123) 04-22 12:30:21.790: E/AndroidRuntime(307): at android.app.ActivityThread.main(ActivityThread.java:4627) 04-22 12:30:21.790: E/AndroidRuntime(307): at java.lang.reflect.Method.invokeNative(Native Method) 04-22 12:30:21.790: E/AndroidRuntime(307): at java.lang.reflect.Method.invoke(Method.java:521) 04-22 12:30:21.790: E/AndroidRuntime(307): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 04-22 12:30:21.790: E/AndroidRuntime(307): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 04-22 12:30:21.790: E/AndroidRuntime(307): at dalvik.system.NativeStart.main(Native Method) 04-22 12:30:21.790: E/AndroidRuntime(307): Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f05003c (com.thenewboston.jerome:id/container) for fragment PlaceholderFragment{44f1d978 #0 id=0x7f05003c} 04-22 12:30:21.790: E/AndroidRuntime(307): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:930) 04-22 12:30:21.790: E/AndroidRuntime(307): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1115) 04-22 12:30:21.790: E/AndroidRuntime(307): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 04-22 12:30:21.790: E/AndroidRuntime(307): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478) 04-22 12:30:21.790: E/AndroidRuntime(307): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:570) 04-22 12:30:21.790: E/AndroidRuntime(307): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129) 04-22 12:30:21.790: E/AndroidRuntime(307): at android.app.Activity.performStart(Activity.java:3781) 04-22 12:30:21.790: E/AndroidRuntime(307): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2636) 04-22 12:30:21.790: E/AndroidRuntime(307): ... 11 more Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 22 avril 2014 Share Posté(e) 22 avril 2014 Cela semble planter un peu plus loin, lors de l'ajout du fragment PlaceholderFragment à l'Activity. Et là il ne semble pas trouver le composant d'id 'container' (un FrameLayout en général, quand on manipule des fragments) dans le layout que tu as chargé. Mais il y a peut-être un problème de conception, car si tu utilises des fragments pour découper ton application, une grande partie du code du onCreate de ton Activity (récupération des Button/TextView, branchement des listeners, ...) ne devrait pas être là, mais plutôt dans un des fragments chargés par ton Activity. Ou alors, as-tu bien besoin d'utiliser des fragments, une simple Activity ne suffirait-t'elle pas ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cerawyr Posté(e) 23 avril 2014 Auteur Share Posté(e) 23 avril 2014 D'accord. J'avoue avoir suivie simplement le tuto et il est vrai que le formateur ne possède pas de fragment. Mais lorsque je veux mettre mes textview dans activity_starting_point cela ne fonctionne pas. J'ai un peu de mal à saisir pourquoi :mellow: La console me sort : [2014-04-23 10:09:22 - TheNewBoston] Error in an XML file: aborting build. Tandis qu'Eclipse me dit dans une infobulle : Multiple annotations found at this line: - error: Error parsing XML: junk after document element - The markup in the document following the root element must be well- formed. J'espère ne pas passer pour un boulet ^_^ en tout cas je pense que vous avez compris que je suis trèèès débutant ^_^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cerawyr Posté(e) 29 avril 2014 Auteur Share Posté(e) 29 avril 2014 up :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nhi Posté(e) 29 avril 2014 Share Posté(e) 29 avril 2014 essai en remplaçant ton ActionBarActivity par Activity et en supprimant : if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()) .commit(); } Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 30 avril 2014 Share Posté(e) 30 avril 2014 Essaie aussi de corriger ton XML, puisqu'il semble qu'il y ait une erreur dans un de ces fichiers??? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.