Aller au contenu

Application crash au démarrage


Cerawyr

Recommended Posts

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

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

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

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

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

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

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...