web-dev-qa-db-ja.com

ViewPager FragmentPagerAdapter Nullpointer

Android Support package のViewPagerを使用してこのエラーが発生しました。 ViewPagerチュートリアルの水平ビュースワイプから

06-19 13:07:25.950: E/AndroidRuntime(16382): FATAL EXCEPTION: main
06-19 13:07:25.950: E/AndroidRuntime(16382): Java.lang.NullPointerException
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.Java:347)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.support.v4.app.BackStackRecord.add(BackStackRecord.Java:342)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.Java:97)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.support.v4.view.ViewPager.addNewItem(ViewPager.Java:649)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.support.v4.view.ViewPager.populate(ViewPager.Java:783)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.support.v4.view.ViewPager.onMeasure(ViewPager.Java:1016)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.view.View.measure(View.Java:12728)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.Java:594)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.widget.RelativeLayout.onMeasure(RelativeLayout.Java:376)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.view.View.measure(View.Java:12728)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.view.ViewGroup.measureChildWithMargins(ViewGroup.Java:4698)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.widget.FrameLayout.onMeasure(FrameLayout.Java:293)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.view.View.measure(View.Java:12728)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.view.ViewGroup.measureChildWithMargins(ViewGroup.Java:4698)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.Java:1369)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.widget.LinearLayout.measureVertical(LinearLayout.Java:660)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.widget.LinearLayout.onMeasure(LinearLayout.Java:553)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.view.View.measure(View.Java:12728)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.view.ViewGroup.measureChildWithMargins(ViewGroup.Java:4698)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.widget.FrameLayout.onMeasure(FrameLayout.Java:293)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at com.Android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.Java:2092)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.view.View.measure(View.Java:12728)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.view.ViewRootImpl.performTraversals(ViewRootImpl.Java:1064)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.view.ViewRootImpl.handleMessage(ViewRootImpl.Java:2442)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.os.Handler.dispatchMessage(Handler.Java:99)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.os.Looper.loop(Looper.Java:137)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Android.app.ActivityThread.main(ActivityThread.Java:4424)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Java.lang.reflect.Method.invokeNative(Native Method)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at Java.lang.reflect.Method.invoke(Method.Java:511)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:784)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:551)
06-19 13:07:25.950: E/AndroidRuntime(16382):    at dalvik.system.NativeStart.main(Native Method)
34
passsy

Passsyの回答のコメントを誰も読んでいない場合に備えて、役立つ回答の要約を以下に示します。

1)getItem(int index)メソッドを非常に詳しく調べて、ロジック、シナリオ、またはnullフラグメントになる可能性のある「break」ステートメントの欠落を探します。

2)getCount()によって返されるカウントがgetItem(int index)で返されるフラグメントの数と一致することを確認します。

3)インポートを調べて、混合していないことを確認しますAndroid.app.FragmentAndroid.support.v4.app.Fragment

75
Chris Knight

それは簡単な解決策です。 Android.app.FragmentAndroid.support.v4.app.Fragmentを混合しました

これが誰かを助けることを願っています

18
passsy

アダプターの getItem() がnullを返す場合、nullポインター例外が発生する可能性があります。

6
TisSarah