下位互換性パッケージを使用して、Fragment
を含むレイアウトを拡張しようとしています。 jarファイルを取得して、プロジェクトのlibsフォルダーに配置しました。 Fragmentを拡張し、ActivityのcontentViewをに設定してFragmentを膨らませようとしました
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="vertical">
<fragment
class="com.test.fragments.AdFragment"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"/></LinearLayout>
しかし、コンテンツビューを設定すると、フラグメントタグのClassNotFoundException
で失敗します。これがlogcatの出力です。
Java.lang.RuntimeException: Unable to start activity ComponentInfo{}: \
Android.view.InflateException: Binary XML file line #51: \
Error inflating class fragment
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:1777)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:1793)
at Android.app.ActivityThread.access$1500(ActivityThread.Java:123)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:939)
at Android.os.Handler.dispatchMessage(Handler.Java:99)
at Android.os.Looper.loop(Looper.Java:123)
at Android.app.ActivityThread.main(ActivityThread.Java:3848)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:507)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:841)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:599)
at dalvik.system.NativeStart.main(Native Method)
Caused by: Android.view.InflateException: Binary XML file line #51: \
Error inflating class fragment
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:581)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:623)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:408)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:320)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:276)
at com.Android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.Java:211)
at Android.app.Activity.setContentView(Activity.Java:1657)
at com.test.base.activities.TabbedStoreActivity.onCreate(TabbedStoreActivity.Java:46)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1047)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:1731)
... 11 more
Caused by: Java.lang.ClassNotFoundException: Android.view.fragment in loader \
dalvik.system.PathClassLoader[/system/framework/com.google.Android.maps.jar: \
/data/app/com.test.test.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.Java:240)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:551)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:511)
at Android.view.LayoutInflater.createView(LayoutInflater.Java:471)
at Android.view.LayoutInflater.onCreateView(LayoutInflater.Java:549)
at com.Android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.Java:66)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:568)
... 20 more
アクティビティがFragmentActivity
から継承していることを確認してください。継承していない場合は、<fragment>
動作しません。 これはサンプルプロジェクトです これを示しています。