Essayez de supprimer fragment de la vue me donne NullPointerException sur mNextAnim

J'ai 3 fragments, l'un NavigationDrawer, un MapFragment, et un définis par l'utilisateur "MapInfoFragment". Je veux que la "MapInfoFragment" apparaît semi-transparent sur le haut de la MapFragment sur certains événements et disparaissent sur les autres. Je ne me soucie pas vraiment si je supprimer complètement le fragment et en créer un nouveau à chaque fois, ou je viens de changer la visibilité et les informations affichées. Actuellement, je suis juste essayer d'utiliser FragmentManager de l' .hide() de la fonction, mais j'ai aussi essayé .supprimer et .détacher avec des résultats similaires.

Erreur:

03-18 14:28:10.965  24711-24711/com.[packageName].asTest D/AndroidRuntime Shutting down VM
03-18 14:28:10.965  24711-24711/com.[packageName].asTest E/AndroidRuntime FATAL EXCEPTION: main
Process: com.[packageName].asTest, PID: 24711
java.lang.NullPointerException: Attempt to write to field 'int android.app.Fragment.mNextAnim' on a null object reference
        at android.app.BackStackRecord.run(BackStackRecord.java:658)
        at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)
        at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5017)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)

Activity_main.xml:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.[packageName].asTest.MainActivity">

    <!-- As the main content view, the view below consumes the entire
         space available using match_parent in both dimensions. -->
    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <fragment xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:map="http://schemas.android.com/apk/res-auto"
            android:id="@+id/map"
            android:name="com.google.android.gms.maps.MapFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            map:cameraZoom="8"
            map:mapType="satellite"
            map:uiRotateGestures="false"
            android:layout_gravity="center_horizontal|top"
        />
    </FrameLayout>

    <fragment android:id="@+id/navigation_drawer"
        android:layout_width="@dimen/navigation_drawer_width"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:name="com.[packageName].asTest.NavigationDrawerFragment"
        tools:layout="@layout/simple_list_item_1" />

    <fragment android:id="@+id/map_info"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:name="com.[packageName].asTest.MapInfoFragment" />




</android.support.v4.widget.DrawerLayout>

Code Fautif:

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.hide(getFragmentManager().findFragmentById(R.id.map_info));
ft.commit();

Mise à jour de 1

J'ai changé map_info_layout à map_info et il n'y a pas de changement dans l'erreur que je reçois. J'avais déjà eu map_info_layout définie comme l'id de la racine FrameLayout de la MapInfoFragment de la mise en page xml, donc je pense que map_info_layout et map_info ont été pointant vers la même chose.

Mise à jour 2: Ma solution

S'est avéré que j'avais MapInfoFragment l'extension de android.support.v4.app.Fragment au lieu de android.app.Fragment et j'ai été en utilisant le android.app.FragmentTransaction au lieu de android.support.v4.app.FragmentTransaction. Commutation de tout à android.app. puisque je ne suis pas intéressé par les anciens la compatibilité de l'appareil. Grâce Fllo.

Mise à jour 3: solution Générale

Arrêter d'essayer de cacher des objets null

  • Peut-être que je me trompe, mais je ne vois pas un fragment nommé map_info_layout, dans votre mise en page, je ne vois map_info.
InformationsquelleAutor Koeber | 2014-03-18