IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Fragment : problème en suivant le dernier tutoriel de developpez.com


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Par défaut Fragment : problème en suivant le dernier tutoriel de developpez.com
    Bonjour,

    Je continue ma découverte d'Android en lisant doc et tutoriel Android un peu partout sur le net.

    Ce week-end je me suis lancé dans l'étude des Fragment, et pour le côté "exercice", je me suis servi du super tutoriel de developpez ( http://vogella.developpez.com/tutori...ments-Android/ ).

    J'ai fait l'exercice du §10 et tout fonctionne comme prévu.

    Je rencontre un soucis dans l'exercice du §11, dont le but est de jouer avec le mode portrait : 2 activités en mode portrait avec chacune un fragment, et une seule activité en mode paysage avec les 2 fragments.

    Mon problème : je pense avoir bien suivi le tuto, et pourtant à l'exécution sur mon téléphone, l'appli se lance en mode portrait avec un seul fragment comme prévu contenant un bouton, je clique sur le bouton pour créer/lancer la deuxième activité, et l'appli se ferme brutalement sans que la 2° activité ne se lance.

    Si je ne clique pas, et que je passe en mode paysage, les 2 fragments s'affiche et le bouton fonctionne comme prévu.

    J'ai tenté de débugger dans Android Studio, mais toutes les instructions de mon code s'exécutent bien. L'erreur semble se produire quand je rentre dans des classes natives d'Android...

    Je suppose que c'est une erreur idiote comme souvent, mais je ne sais plus trop où chercher, sachant que le message d'erreur dans la console n'est pas explicite...

    Quelqu'un a suivi ce tuto ? Avez vous déjà eu ce genre d'erreur en créant dynamiquement une activité et en l'affichant ?

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Je n'ai pas suivi ce tuto mais pourrais-tu mettre la stacktrace complète de ton erreur s'il te plaît ?
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Membre éclairé Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Par défaut
    Bonjour,

    Je suppose que tu veux ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    02-25 22:16:31.335 12356-12356/com.sample.myfragment 
    E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity 
    ComponentInfo{com.sample.myfragment/com.sample.myfragment.DetailActivity}: 
    android.view.InflateException: Binary XML file line #6: Error inflating 
    class fragment
    at 
    android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
    at android.app.ActivityThread.access$600(ActivityThread.java:153)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1269)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5289)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at 
    com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
    at dalvik.system.NativeStart.main(Native Method)
    Caused by: android.view.InflateException: Binary XML file line #6: Error 
    inflating class fragment
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
    at 
    com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:320)
    at android.app.Activity.setContentView(Activity.java:1895)
    at 
    android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:216)
    at 
    android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:111)
    at 
    android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76)
    at 
    com.sample.myfragment.DetailActivity.onCreate(DetailActivity.java:23)
    at android.app.Activity.performCreate(Activity.java:5133)
    at 
    android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
    at 
    android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2293)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
    at android.app.ActivityThread.access$600(ActivityThread.java:153)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1269)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5289)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at 
    com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
    at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.ClassCastException: 
    com.sample.myfragment.DetailActivity cannot be cast to 
    android.app.Fragment
    at android.app.Fragment.instantiate(Fragment.java:585)
    at android.app.Fragment.instantiate(Fragment.java:560)
    at android.app.Activity.onCreateView(Activity.java:4738)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
    at 
    com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:320)
    at android.app.Activity.setContentView(Activity.java:1895)
    at 
    android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:216)
    at 
    android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:111)
    at 
    android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76)
    at 
    com.sample.myfragment.DetailActivity.onCreate(DetailActivity.java:23)
    at android.app.Activity.performCreate(Activity.java:5133)
    at 
    android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
    at 
    android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2293)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
    at android.app.ActivityThread.access$600(ActivityThread.java:153)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1269)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5289)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at 
    com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
    at dalvik.system.NativeStart.main(Native Method)
    Je suppose que mon erreur est dans le XML à la lecture e ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    android.view.InflateException: Binary XML file line #6: Error inflating 
    class fragment
    Je pensais qu'à la compilation le XML était validé. Je regarde mon fichier XML dès que j'ai le temps (je n'ai pas mon code avec moi...)

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Oui, c'est bien ça, merci

    je reformate vite fait (plus lisible à mon sens) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Unable to start activity 
    ComponentInfo{com.sample.myfragment/com.sample.myfragment.DetailActivity}: 
    android.view.InflateException: Binary XML file line #6: Error inflating class fragment
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
            at android.app.ActivityThread.access$600(ActivityThread.java:153)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1269)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5289)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
            at dalvik.system.NativeStart.main(Native Method)
    Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:320)
            at android.app.Activity.setContentView(Activity.java:1895)
            at android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:216)
            at android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:111)
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76)
            at com.sample.myfragment.DetailActivity.onCreate(DetailActivity.java:23)
            at android.app.Activity.performCreate(Activity.java:5133)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2293)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
            at android.app.ActivityThread.access$600(ActivityThread.java:153)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1269)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5289)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
            at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.ClassCastException: com.sample.myfragment.DetailActivity cannot be cast to android.app.Fragment
            at android.app.Fragment.instantiate(Fragment.java:585)
            at android.app.Fragment.instantiate(Fragment.java:560)
            at android.app.Activity.onCreateView(Activity.java:4738)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:320)
            at android.app.Activity.setContentView(Activity.java:1895)
            at android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:216)
            at android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:111)
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76)
            at com.sample.myfragment.DetailActivity.onCreate(DetailActivity.java:23)
            at android.app.Activity.performCreate(Activity.java:5133)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2293)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
            at android.app.ActivityThread.access$600(ActivityThread.java:153)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1269)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5289)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
            at dalvik.system.NativeStart.main(Native Method)
    Je dirai que ton problème vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Caused by: java.lang.ClassCastException: com.sample.myfragment.DetailActivity cannot be cast to android.app.Fragment
            at com.sample.myfragment.DetailActivity.onCreate(DetailActivity.java:23)
    A priori, tu sembles transtyper DetailActivity en Fragment, ce qui est incompatible
    Fichier DetailActivity.java, ligne 23, dans la méthode onCreate.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Membre éclairé Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Par défaut
    Salut,

    Je pense avoir trouvé grace à ton aide. Je n'ai pas mon code sous les yeux et je ne peux pas vérifier mon hypothèse tout de suite.

    En combinant ton idée et la mienne (voir mon message), on comprend qu'il y a une erreur dans le layout que je tente de sérialiser avec ma class.

    J'ai jeté un oeil au layout qui contient un fragment, et de mémoire, je pense que le nom du fragment n'est pas correct car j'ai peut être mis le nom du "TextView" que j'utilise dans le fragment à la place du nom du fragment lui même...

    Ce n'est qu'une idée, et je ne pourrai vérifier que ce soir ou demain matin...

Discussions similaires

  1. [HOOK] Problème(s) pour réaliser le tutoriel sur les HOOKS
    Par Rodrigue dans le forum C++Builder
    Réponses: 13
    Dernier message: 27/07/2016, 18h22
  2. Quel format utilisez-vous pour lire les tutoriels de Developpez.com ?
    Par LittleWhite dans le forum Evolutions du club
    Réponses: 26
    Dernier message: 04/12/2014, 14h45
  3. problème avec pied de page [Tuto de developpez.com]
    Par developpeur_mehdi dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 15/01/2007, 16h26
  4. [HTML][CSS] Problèmes affichage suivant navigateur
    Par chillansky dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 14/04/2006, 17h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo