ViewPager FragmentPagerAdapter空指针 [英] ViewPager FragmentPagerAdapter Nullpointer

查看:595
本文介绍了ViewPager FragmentPagerAdapter空指针的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我通过使用ViewPager在Android 支持包得到这个错误。从横向视图刷卡与<一个href="http://android-developers.blogspot.de/2011/08/horizontal-view-swiping-with-viewpager.html">ViewPager教程

  06-19 13:07:25.950:E / AndroidRuntime(16382):致命异常:主要
06-19 13:07:25.950:E / AndroidRuntime(16382):显示java.lang.NullPointerException
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.java:347)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.support.v4.app.BackStackRecord.add(BackStackRecord.java:342)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:97)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.support.v4.view.ViewPager.addNewItem(ViewPager.java:649)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.support.v4.view.ViewPager.populate(ViewPager.java:783)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1016)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.view.View.measure(View.java:12728)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.widget.RelativeLayout.measureChildHorizo​​ntal(RelativeLayout.java:594)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.widget.RelativeLayout.onMeasure(RelativeLayout.java:376)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.view.View.measure(View.java:12728)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.view.View.measure(View.java:12728)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.widget.LinearLayout.measureVertical(LinearLayout.java:660)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.view.View.measure(View.java:12728)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
06-19 13:07:25.950:E / AndroidRuntime(16382):在com.android.internal.policy.impl.PhoneWindow $ DecorView.onMeasure(PhoneWindow.java:2092)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.view.View.measure(View.java:12728)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1064)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.os.Handler.dispatchMessage(Handler.java:99)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.os.Looper.loop(Looper.java:137)
06-19 13:07:25.950:E / AndroidRuntime(16382):在android.app.ActivityThread.main(ActivityThread.java:4424)
06-19 13:07:25.950:E / AndroidRuntime(16382):在java.lang.reflect.Method.invokeNative(本机方法)
06-19 13:07:25.950:E / AndroidRuntime(16382):在java.lang.reflect.Method.invoke(Method.java:511)
06-19 13:07:25.950:E / AndroidRuntime(16382):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784)
06-19 13:07:25.950:E / AndroidRuntime(16382):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-19 13:07:25.950:E / AndroidRuntime(16382):在dalvik.system.NativeStart.main(本机方法)
 

解决方案

万一有人不读passsy的回答的意见,这里是有用的答案摘要:

1)检查你的的getItem(INT指数)方法非常接近,并查找任何逻辑,方案或丢失的破发声明这可能会导致你最终有一个片段。

2)检查由 getCount将()返回的计数的getItem(INT指数)

3)检查您的进口,确保不会混 android.app.Fragment android.support.v4.app.Fragment

I got this error by using the ViewPager in the Android Support package. from the Horizontal View Swiping with ViewPager Tutorial

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)

解决方案

Just in case anyone doesn't read the comments of passsy's answer, here is a summary of the useful answers:

1) Examine your getItem(int index) method very closely and look for any logic, scenarios or missing 'break' statements which might cause you to end up with a null fragment.

2) Check that the count returned by getCount() matches the number of fragments returned in getItem(int index).

3) Examine your imports and ensure you aren't mixing android.app.Fragment with android.support.v4.app.Fragment

这篇关于ViewPager FragmentPagerAdapter空指针的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆