ClassCastException: CustomFragment не может быть приведен к android.app.Fragment / Using android.support.v4.app.Fragment
Я занимаюсь разработкой приложения, разделенного на одну библиотеку и два приложения: одно для телефонов, другое для планшетов. В библиотеке определено много кода и макета, а в приложениях - только несколько частей.
Я использую фрагменты вActivity
сViewPager
для версии телефона (макет и активность, определенные в библиотеке, используются без изменений в приложении телефона).
Для версии для планшета я хочу показать свои фрагменты (2) рядом, а не в видеViewPager
Я попытался создать XML-макет следующим образом:
<....>
<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>
</....>
Моя проблема в том, что код работает в приложении для телефона, а не в приложении для планшета. На этом я получаю этот стек исключений:
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)
Сообщения об ошибках говорят оandroid.app.Fragment
где я бы ожидалandroid.support.v4.app.Fragment
.
После поиска в Интернете я проверил эти пункты:
My activity extendsandroid.support.v4.app.FragmentActivity
,
My fragments extend android.support.v4.app.Fragment
,
My application uses the support.v4 library.