3 votes

Erreur de gonflement de la classe fragment non trouvée Android.view.fragment mais j'inclus la bibliothèque de compatibilité ?

Je vois une exception de classe non trouvée pour Android.view.fragment bien que j'utilise la bibliothèque de compatibilité. La compilation est bonne mais le programme se plante. Y a-t-il un autre paquet que je devrais utiliser en pré 3.0 ? J'ai déjà changé toutes les classes de fragment en Android.support.v4.app.Frament mais ça plante toujours à cause de ce qui est dans la mise en page. Mon SDK est 4.03 mais mon appareil est 2.3.

Voici la mise en page

    <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<fragment
    android:id="@+id/frag_series"
    android:layout_width="200dip"
    android:layout_height="match_parent"
    android:layout_marginTop="?android:attr/actionBarSize"
    class="com.authorwjf.hello_fragments.ListFrag" />
<fragment
    android:id="@+id/frag_capt"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.authorwjf.hello_fragments.DetailFrag" />
</LinearLayout>

LogCat :

08-08 14:53:21.644: E/AndroidRuntime(13056): Caused by: android.view.InflateException:     Binary    XML file line #6: Error inflating class fragment
08-08 14:53:21.644: E/AndroidRuntime(13056):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576)
08-08 14:53:21.644: E/AndroidRuntime(13056):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
08-08 14:53:21.644: E/AndroidRuntime(13056):    at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
08-08 14:53:21.644: E/AndroidRuntime(13056):    at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
08-08 14:53:21.644: E/AndroidRuntime(13056):    at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
08-08 14:53:21.644: E/AndroidRuntime(13056):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:200)
08-08 14:53:21.644: E/AndroidRuntime(13056):    at android.app.Activity.setContentView(Activity.java:1647)
08-08 14:53:21.644: E/AndroidRuntime(13056):    at com.authorwjf.hello_fragments.Main.onCreate(Main.java:11)
08-08 14:53:21.644: E/AndroidRuntime(13056):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
08-08 14:53:21.644: E/AndroidRuntime(13056):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
08-08 14:53:21.644: E/AndroidRuntime(13056):    ... 11 more
08-08 14:53:21.644: E/AndroidRuntime(13056): Caused by: java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClassLoader[/data/app/com.authorwjf.hello_fragments-2.apk]
08-08 14:53:21.644: E/AndroidRuntime(13056):    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)

3voto

trevor-e Points 3517

Faites de même dans votre XML de mise en page :

<android.support.v4.app.Fragment />

Notez également les majuscules.

1voto

smoke4fun Points 111

Vérifiez si votre activité s'étend à FragmentActivity ? Android.support.v4.app.FragmentActivity pour être exact...

0voto

bogdan Points 77

J'ai eu un problème similaire en utilisant la balise fragment parce qu'il manquait l'appel à super.onCreate() dans mon FragmentActivity. Le fait de l'ajouter a résolu le problème :

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

}

0voto

praveena_kd Points 505

Mon SDK est 4.03 mais mon appareil est 2.3.

J'ai aussi eu ce problème. Puis j'ai appris que lorsque nous fonctionnons sur une version inférieure de l'appareil, nous devons inclure le jar de support (Android.support.v4) dans le chemin de construction.

Après avoir inclus la jarre dans le chemin de construction, nous devons également nous assurer que le fichier jarre sera en haut de l'ordre (en utilisant l'option Order and Export de l'éclipse).

Ces deux choses ont résolu mon problème J'espère que cela vous aidera

0voto

Yasmani Llanes Points 2280

J'ai rencontré le même problème et voici la solution.

L'activité utilisant votre fragment doit étendre FragmentActivity au lieu de simplement Activity .

Dans votre mise en page pour l'activité, vous pouvez toujours utiliser <fragment /> au lieu de <android.support.v4.app.Fragment />

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X