2012-06-19 8 views
32

Recibí este error al usar ViewPager en Android Support package. desde la vista horizontal Deslizar con ViewPager TutorialViewPager FragmentPagerAdapter Nullpointer

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) 

Respuesta

70

Sólo en caso de que alguien no ha leído los comentarios de la respuesta de passsy, aquí hay una resumen de las respuestas útiles:

1) Examine su método getItem(int index) muy de cerca y busque cualquier lógica, escenarios o declaraciones 'break' que falten que puedan causarle que termine con un fragmento null.

2) Compruebe que el recuento devuelto por getCount() coincide con la cantidad de fragmentos devueltos en getItem(int index).

3) Examine sus importaciones y asegurarse de que no se está mezclando con android.app.Fragmentandroid.support.v4.app.Fragment

+0

Esta debería ser la respuesta aceptada. La pila de errores se genera en las tres cuentas. En mi caso, no había implementado una clase Fragment inflando la vista para una pestaña en particular. Estaba bajo la suposición de que devolver un valor nulo del método getItem() representaría la pestaña (títulos) sin sus Fragmentos asociados en mi Actividad. Devolver un Fragmento para cada pestaña de getItem() me resolvió el problema. – user1841702

+0

Gracias @chris .... porque no leí los comentarios e intenté con la respuesta aceptada. –

+0

me pasó a mí y la opción 1 fue el ticket, simplemente compartiendo, usé una caja de conmutadores dentro de getItem (índice int), y las etiquetas de caso fueron 0, 2, 3, también causa la misma excepción. Gracias. – TommySM

18

Es una solución simple. He mezclado android.app.Fragment y android.support.v4.app.Fragment

esperanza esto ayude a alguien

+1

¿Estás seguro de que esa era la solución? Tengo exactamente la misma stacktrace pero no instancias de android.app.Fragment ... – brk3

+0

tienes android.app.Activity o android.app.FragmentActivity? utilizo todo desde android.support.v4.app – passsy

+47

Encontré el problema, uno de los casos de cambio en mi getItem() estaba cayendo al final donde había un valor predeterminado de retorno nulo. – brk3

6

Si getItem() en sus declaraciones de adaptador nula de que puede provocar una excepción de puntero nulo.

Cuestiones relacionadas