ClassCastException: CustomFragment kann nicht in android.app.Fragment / Using android.support.v4.app.Fragment umgewandelt werden
Ich entwickle eine Anwendung, die in eine Bibliothek und zwei Anwendungen unterteilt ist: eine für Telefone und eine für Tablets. In der Bibliothek ist viel Code und Layout definiert, und in den Anwendungen sind nur wenige Teile definiert.
Ich verwende Fragmente in einemActivity
, mit einerViewPager
für die Telefonversion (Layout und Aktivität in der Bibliothek definiert, ohne Änderung in der Telefonanwendung). Für die Tablet-Version möchte ich meine Fragmente (2) nebeneinander und nicht in einemViewPager
Deshalb habe ich versucht, ein solches XML-Layout zu erstellen:
<....>
<LinearLayout
android:id="@+id/fragmentsParent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<fragment
android:id="@+id/f1"
android:class="com.test.Fragment1"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1" />
<fragment
android:id="@+id/f2"
android:name="com.test.Fragment2"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1" />
</LinearLayout>
</....>
Mein Problem ist, dass der Code in meiner Telefonanwendung funktioniert, aber nicht in meiner Tablet-Anwendung. In diesem Fall erhalte ich den folgenden Ausnahmestapel:
07-11 17:41:14.032: E/AndroidRuntime(14754): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
07-11 17:41:14.032: E/AndroidRuntime(14754): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1782)
07-11 17:41:14.032: E/AndroidRuntime(14754): ... 11 more
07-11 17:41:14.032: E/AndroidRuntime(14754): Caused by: java.lang.ClassCastException: com.test.Fragment1 cannot be cast to android.app.Fragment
07-11 17:41:14.032: E/AndroidRuntime(14754): at android.app.Fragment.instantiate(Fragment.java:560)
07-11 17:41:14.032: E/AndroidRuntime(14754): at android.app.Fragment.instantiate(Fragment.java:535)
07-11 17:41:14.032: E/AndroidRuntime(14754): at android.app.Activity.onCreateView(Activity.java:4168)
07-11 17:41:14.032: E/AndroidRuntime(14754): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:664)
Die Fehlermeldungen sprechen überandroid.app.Fragment
wo ich erwarten würdeandroid.support.v4.app.Fragment
.
Nach der Suche im Internet habe ich folgende Punkte überprüft:
Meine Tätigkeit erstreckt sichandroid.support.v4.app.FragmentActivity
,Meine Fragmente erstrecken sichandroid.support.v4.app.Fragment
,Meine Anwendung verwendet die Bibliothek support.v4.