2012-02-15 20 views
5

Estoy compilando una aplicación que utiliza buscapersonas con la biblioteca de compatibilidad. Mi aplicación forceClose cada vez que trato de ponerla en pausa (cuando vuelvo a mi escritorio, por ejemplo).Android Pager Problema en pausa

Nunca he encontrado ningún error de ese tipo y, por lo tanto, no tengo idea de cómo resolverlo.

te muestro mi código, mientras que yo estoy bastante seguro de que usted no tiene que mirarlo:

public class *** extends FragmentActivity { 
    /** Called when the activity is first created. */ 

    static final int NUM_ITEMS = 5; 
    static final int NUM_ACTUALITE = 0; 
    static final int NUM_SELECTION = 1; 
    static final int NUM_MULTIMEDIA = 2; 
    static final int NUM_FESTIVALIER = 3; 
    static final int NUM_***E = 4; 

    MyAdapter mAdapter; 

    ViewPager mPager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.pager_layout); 

     mAdapter = new MyAdapter(getSupportFragmentManager()); 

     mPager = (ViewPager) findViewById(R.id.pager); 
     mPager.setAdapter(mAdapter); 


    } 

    public static class MyAdapter extends FragmentPagerAdapter { 
     public MyAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public int getCount() { 
      return NUM_ITEMS; 
     } 

     @Override 
     public Fragment getItem(int position) { 

      switch (position) { 
      case NUM_ACTUALITE: 
       return ActuFragment.newInstance(); 
      case NUM_SELECTION: 
       return SelectionFragment.newInstance(); 
      case NUM_MULTIMEDIA: 
       return MultimediaFragment.newInstance(); 
      case NUM_FESTIVALIER: 
       return FestivalierFragment.newInstance(); 
      case NUM_***E: 
       return ***eFragment.newInstance(); 
      default: 
       return ActuFragment.newInstance(); 
      } 

     } 
    } 

y mi LogCat:

02-15 11:48:03.902: E/AndroidRuntime(11601): FATAL EXCEPTION: main 
02-15 11:48:03.902: E/AndroidRuntime(11601): java.lang.RuntimeException: Unable to pause activity {com.**.**/com.**.**.***Activity}: java.lang.NullPointerException 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2354) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2311) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2291) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.app.ActivityThread.access$1700(ActivityThread.java:117) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:938) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.os.Looper.loop(Looper.java:130) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.app.ActivityThread.main(ActivityThread.java:3683) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at java.lang.reflect.Method.invokeNative(Native Method) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at java.lang.reflect.Method.invoke(Method.java:507) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at dalvik.system.NativeStart.main(Native Method) 
02-15 11:48:03.902: E/AndroidRuntime(11601): Caused by: java.lang.NullPointerException 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1617) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:481) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.app.Activity.performSaveInstanceState(Activity.java:1037) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1181) 
02-15 11:48:03.902: E/AndroidRuntime(11601): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2336) 
02-15 11:48:03.902: E/AndroidRuntime(11601): ... 12 more 

Un fragmento de minas:

public class ActuFragment extends Fragment { 

    public static ActuFragment newInstance() { 
     ActuFragment f = new ActuFragment(); 

     return f; 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     View mainView = inflater.inflate(R.layout.actualites_layout, 
       container, false); 
     return mainView; 

    } 
} 
+1

debe haber algún problema con la forma en que se utilizan los fragmentos. ¿Has intentado hacerlo sin fragmentos todavía? – josephus

+0

sí, y parecía funcionar bien. ¿Quieres ver a los demás como parte de mi código? –

+0

No he leído su respuesta, no, no lo he intentado sin fragmentos, realmente estaba seguro de que no fue posible. pero los necesito de todos modos. He agregado uno de mis fragmentos, todos son similares –

Respuesta

26

He tropezado con el mismo problema al utilizar la biblioteca de compatibilidad de ActionBarSherlock. La solución alternativa es que su adaptador se extiende FragmentStatePagerAdapter en lugar de FragmentPagerAdapter.

+2

Sí, esto funcionó para mí –

+1

+1 @lukaciko Me quedé mal en esto. – kishu27

+0

¡Funciona, gracias! Los problemas comenzaron después de agregar WebView en un fragmento. – pointer

1

su lugar se puede seguir el trabajo en torno a here que he publicado anteriormente para un problema relacionado con la NPE durante el uso de Tab + Fragmento + ViewPager + FragmentStatePagerAdapter

espero misma solución funcionará para usted

-1

probar mu answer here básicamente anula el onSaveInstanceState, coloca al menos un valor en el paquete. Para todos los fragmentos