Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Erreur au lancement inconpréhensible

Sujet résolu
    29 décembre 2012 à 10:35:47

    Bonjour,

    Alors voilà je comprend vraiment pas ce qui se passe là :s
    Hier ça fonctionnait nickel, j'ai rien fait de spécial et boum aujourd'hui quand je lance mon app j'ai un message d'erreur qui dit que mon fragment n'est pas lié à une activité -_-

    12-29 09:33:31.221: E/AndroidRuntime(804): FATAL EXCEPTION: main
    12-29 09:33:31.221: E/AndroidRuntime(804): java.lang.RuntimeException: Unable to start activity ComponentInfo{rapport.presse.cim/rapport.presse.cim.CIMPresseActivity}: java.lang.IllegalStateException: Fragment First{412bc040} not attached to Activity
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.app.ActivityThread.access$600(ActivityThread.java:123)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.os.Handler.dispatchMessage(Handler.java:99)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.os.Looper.loop(Looper.java:137)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.app.ActivityThread.main(ActivityThread.java:4424)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at java.lang.reflect.Method.invokeNative(Native Method)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at java.lang.reflect.Method.invoke(Method.java:511)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at dalvik.system.NativeStart.main(Native Method)
    12-29 09:33:31.221: E/AndroidRuntime(804): Caused by: java.lang.IllegalStateException: Fragment First{412bc040} not attached to Activity
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.support.v4.app.Fragment.getResources(Fragment.java:551)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.support.v4.app.Fragment.getString(Fragment.java:573)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at rapport.presse.cim.First.<init>(First.java:23)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at java.lang.Class.newInstanceImpl(Native Method)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at java.lang.Class.newInstance(Class.java:1319)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.support.v4.app.Fragment.instantiate(Fragment.java:384)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.support.v4.app.Fragment.instantiate(Fragment.java:359)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at rapport.presse.cim.CIMPresseActivity.onCreate(CIMPresseActivity.java:28)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.app.Activity.performCreate(Activity.java:4465)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
    12-29 09:33:31.221: E/AndroidRuntime(804):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
    12-29 09:33:31.221: E/AndroidRuntime(804):         ... 11 more


    Quelqu'un aurait une idée du pq du comment? ^^
    • Partager sur Facebook
    • Partager sur Twitter
      29 décembre 2012 à 10:49:15

      Salut,

      Effectivement, c'est plutôt bizarre. Tu peux poster :

      at rapport.presse.cim.CIMPresseActivity.onCreate(CIMPresseActivity.java:28)


      PS : Tu sais éditer ton précédent topic pour apporter ta solution ? :)
      • Partager sur Facebook
      • Partager sur Twitter
      Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
        29 décembre 2012 à 10:56:43

        J'y ai pas touché ^^


        package rapport.presse.cim;
        
        import android.os.Bundle;
        import android.support.v4.app.Fragment;
        import android.support.v4.app.FragmentActivity;
        import android.support.v4.view.PagerAdapter;
        import android.support.v4.view.ViewPager;
        import java.util.*;
        
        
        public class CIMPresseActivity extends FragmentActivity{
            /** Called when the activity is first created. */
        	
        	private PagerAdapter mPagerAdapter;
        	
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                
        /**===============================================
         			Gestion du slide entre page
           ===============================================**/
                
                /**Création des fragments**/
               List fragments = new Vector();
                
                fragments.add(Fragment.instantiate(this,First.class.getName()));
                fragments.add(Fragment.instantiate(this,First.class.getName()));
                fragments.add(Fragment.instantiate(this,First.class.getName()));
                
                /**Adaptater pour l'affichage des fragments (liste)*/
                this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
                
                ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
                
                /** Affectation de l'adapter au ViewPager**/
                pager.setAdapter(this.mPagerAdapter);    
            }
        }
        
        • Partager sur Facebook
        • Partager sur Twitter
          29 décembre 2012 à 11:07:45

          Non mais comme ton erreur indique cette classe, c'est une bonne chose de l'exposer.

          Première chose, ça List fragments = new Vector();, ça devrait pas exister. La classe Vector est obsolète. Utilise une ArrayList avec un type générique (List<Fragment> fragments = new ArrayList<Fragment>();

          Deuxième chose, pourquoi tu fais :

          Fragment.instantiate(this,First.class.getName())
          


          Et pas simplement :

          new MonFragment();
          
          • Partager sur Facebook
          • Partager sur Twitter
          Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
            29 décembre 2012 à 11:16:05

            J'ai fait les modif comme tu me l'a dit (enfin si j'ai bien compris):

            List<Fragment> fragments = new ArrayList<Fragment>();
                    
                    fragments.add(new First());
                    fragments.add(new First());
                    fragments.add(new First());
            


            J'ai fait comme j'avais vu dans un tuto ^^
            (c'est bien vu comme ça j'ai peut-être plus de chance que ta solution sur les fragments fonctionne ^^).

            Par contre toujours la même erreur que mon fragment n'est pas lié à une activité :s
            • Partager sur Facebook
            • Partager sur Twitter
              29 décembre 2012 à 11:20:50

              Tu peux donner montrer ta classe First ? Ca semble son initialization qui échoue.
              • Partager sur Facebook
              • Partager sur Twitter
              Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
                29 décembre 2012 à 11:22:31

                Bon bah c'est ok, j'ai juste retapé R.layout.first et ça fonctionne de nouveau...
                • Partager sur Facebook
                • Partager sur Twitter

                [Android] Erreur au lancement inconpréhensible

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown