NullPointerException:FragmentManagerImpl.execPendingActions(FragmentManager.java:1410)

NullPointerException:FragmentManagerImpl.execPendingActions(FragmentManager.java:1410),java,android,google-maps,nullpointerexception,Java,Android,Google Maps,Nullpointerexception,所以,我有一个片段,它使用映射片段。这很好,但当我按back或退出应用程序时,会出现NullPointerException,我搜索了又搜索,但我不明白是什么 以下是我的日志: 06-17 12:03:59.105: E/AndroidRuntime(32422): FATAL EXCEPTION: main 06-17 12:03:59.105: E/AndroidRuntime(32422): java.lang.NullPointerException 06-17 12:03:59.105

所以,我有一个片段,它使用
映射
片段。这很好,但当我按back或退出应用程序时,会出现
NullPointerException
,我搜索了又搜索,但我不明白是什么

以下是我的日志:

06-17 12:03:59.105: E/AndroidRuntime(32422): FATAL EXCEPTION: main
06-17 12:03:59.105: E/AndroidRuntime(32422): java.lang.NullPointerException
06-17 12:03:59.105: E/AndroidRuntime(32422):    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1410)
06-17 12:03:59.105: E/AndroidRuntime(32422):    at android.app.FragmentManagerImpl$1.run(FragmentManager.java:441)
06-17 12:03:59.105: E/AndroidRuntime(32422):    at android.os.Handler.handleCallback(Handler.java:725)
06-17 12:03:59.105: E/AndroidRuntime(32422):    at android.os.Handler.dispatchMessage(Handler.java:92)
06-17 12:03:59.105: E/AndroidRuntime(32422):    at android.os.Looper.loop(Looper.java:153)
06-17 12:03:59.105: E/AndroidRuntime(32422):    at android.app.ActivityThread.main(ActivityThread.java:5297)
06-17 12:03:59.105: E/AndroidRuntime(32422):    at java.lang.reflect.Method.invokeNative(Native Method)
06-17 12:03:59.105: E/AndroidRuntime(32422):    at java.lang.reflect.Method.invoke(Method.java:511)
06-17 12:03:59.105: E/AndroidRuntime(32422):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
06-17 12:03:59.105: E/AndroidRuntime(32422):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
06-17 12:03:59.105: E/AndroidRuntime(32422):    at dalvik.system.NativeStart.main(Native Method)
这是我认为正确的答案,但我无法实施

谢谢你的帮助

Java代码:

public class NearMeFragment extends Fragment {

private GoogleMap googleMap;
double latitude = 19.18482;
double longitude = 72.83410;
Context context;
ListFragment lf;
ListView lv;
RestaurantListAdapter adapter;

GPSTracker gps;

public NearMeFragment() {
}

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

    View rootView = inflater.inflate(R.layout.fragment_near_me, container,
            false);


    getActivity().getActionBar().show();

    createMap

    return rootView;
}

public void createMap() {
    try {
        initializeMap();

        for (int i = 0; i < bean.size(); i++) {
            try {
                latitude = Double.valueOf(bean.get(i).getLatitude());
                longitude = Double.valueOf(bean.get(i).getLongitude());
            } catch (NumberFormatException e) {
                latitude = 19.18482;
                longitude = 72.83410;
            }

            LatLng pos = new LatLng(latitude, longitude);

            MarkerOptions marker = new MarkerOptions()
                    .position(pos)
                    .title(bean.get(i).getName())
                    .icon(BitmapDescriptorFactory
                            .fromResource(R.drawable.marker));

            CircleOptions circle = new CircleOptions().center(pos)
                    .radius(Double.valueOf(bean.get(i).getDistance()) * 10)
                    .strokeColor(Color.parseColor("#FFFFFF"))
                    .strokeWidth(5)
                    .fillColor(Color.parseColor("#25f67f21"));

            googleMap.addMarker(marker);
            googleMap.addCircle(circle);
        }

        // CameraPosition cp = new CameraPosition.Builder()
        // .target(new LatLng(latitude, longitude)).zoom(12).build();

        CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(
                latitude, longitude));
        CameraUpdate zoom = CameraUpdateFactory.zoomTo(12);

        googleMap.moveCamera(center);
        googleMap.animateCamera(zoom);

        googleMap.setMyLocationEnabled(true);
        googleMap.getUiSettings().setZoomControlsEnabled(true);
        googleMap.getUiSettings().setMyLocationButtonEnabled(false);
        googleMap.getUiSettings().setCompassEnabled(true);
        googleMap.getUiSettings().setZoomGesturesEnabled(true);
        googleMap.getUiSettings().setRotateGesturesEnabled(true);
        googleMap.getUiSettings().setAllGesturesEnabled(true);

    } catch (Exception e) {
        Log.e("TAG", "MSG: " + e);
    }

}

private void initializeMap() {
    if (googleMap == null) {
        googleMap = ((MapFragment) getFragmentManager().findFragmentById(
                R.id.map)).getMap();

        if (googleMap == null) {
            Toast.makeText(NearMeFragment.this.getActivity(),
                    "Sorry! unable to create maps", Toast.LENGTH_LONG)
                    .show();
        }
    }
}

@Override
public void onDestroyView() {
    super.onDestroyView();
    Fragment fragment = ((MapFragment) getFragmentManager()
            .findFragmentById(R.id.map));
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.remove(fragment);
    ft.commit();

}

}

试着这样做:
onDestroyView()

}


您的活动必须
扩展
活动

而不是使用旧的
MapFragment
,请尝试使用新的映射,即
SupportMapFragment

您需要将xml更改为:

<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true" />

SupportMapFragment fragment = ((SupportMapFragment)

确保您将super.onDestroyView()放在在方法onDestroyView的末尾,在移除贴图片段之后。例如:

    @Override
        public void onDestroyView() {
            Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));
            FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
            ft.remove(fragment).commit();

            super.onDestroyView();
        }

在实现映射的地方发布代码亲爱的,请发布代码+XML布局我编辑了question@VarunBarve张贴imports@Rod_Algonquin我发布了这篇文章,上面写着“无法从片段转换到SupportMapFragment”@VarunBarve发布上面的代码。。凭你所拥有的。
<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true" />
MapFragment fragment = ((MapFragment)
SupportMapFragment fragment = ((SupportMapFragment)
    @Override
        public void onDestroyView() {
            Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));
            FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
            ft.remove(fragment).commit();

            super.onDestroyView();
        }