Android 无法从片段强制转换为SupportMapFragment

Android 无法从片段强制转换为SupportMapFragment,android,google-maps,android-fragments,Android,Google Maps,Android Fragments,} 大家好,在我的initializeMap()中,googleMap=((SupportMapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap()一直说不能从片段转换为SupportMapFragment。我不知道发生了什么事。 提前感谢您需要使用android.support.v7.app.Fragment 并且需要使用getSupportFragmentManager 基本上,您需要对v7库进行更改 publi

}

大家好,在我的
initializeMap()
中,
googleMap=((SupportMapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap()
一直说
不能从片段转换为SupportMapFragment
。我不知道发生了什么事。
提前感谢

您需要使用android.support.v7.app.Fragment

并且需要使用getSupportFragmentManager

基本上,您需要对v7库进行更改

public class OutdoorFragment extends Fragment  {
private GoogleMap googleMap;
double latitude = 1.31039;
double longitude = 103.7784;

public OutdoorFragment() {
}

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_outdoor, container,
            false);

    try {
        // Loading map
        initilizeMap();

    } catch (Exception e) {
        e.printStackTrace();
    }

    googleMap.getUiSettings().setZoomGesturesEnabled(true);

    googleMap.getUiSettings().setRotateGesturesEnabled(true);

    googleMap.getUiSettings().setMyLocationButtonEnabled(true);

    googleMap.setMyLocationEnabled(true);

    // create marker
    MarkerOptions marker = new MarkerOptions().position(
            new LatLng(latitude, longitude)).title("Koh Chi Hao ");

    // adding marker

    marker.icon(BitmapDescriptorFactory
            .defaultMarker(BitmapDescriptorFactory.HUE_VIOLET));
    googleMap.addMarker(marker);


    return rootView;
}


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

        // check if map is created successfully or not
        if (googleMap == null) {
            Toast.makeText(getActivity().getApplicationContext(),
                    "Sorry! unable to create maps", Toast.LENGTH_SHORT)
                    .show();
        }
    }
}

@Override
public void onResume() {
    super.onResume();
    initilizeMap();
}
有了这个,

googleMap = ((SupportMapFragment) getFragmentManager().
            findFragmentById(R.id.map)).getMap();
请注意,
getSupportFragmentManager
来自android.support.v4.app.FragmentActivity


祝你好运。

检查你的活动布局。带有映射的片段必须具有以下属性
name=“com.google.android.gms.maps.SupportMapFragment”
,以指示您使用的片段类。

它可能与您在布局上定义的片段类有关。您可以显示您的R.layout.fragment\u户外文件吗?您使用的是
支持库中的
Fragments
,而不是
android.app.
?该活动是
FragmentActivity
还是
ActionBarActivity
?尝试使用
googleMap=((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap()
insteadUse com.google.android.gms.maps.MapFragment在您的xml文件中,或者使用getSupportFragmentManager()而不是getFragmentManager()不是class=“com.google.android.gms.maps.SupportMapFragment”吗?或者它的意思是一样的?看起来这和我面临的问题是一样的:“不可转换的类型;无法将'android.support.v4.app.Fragment'转换为'com.google.android.gms.maps.SupportMapFragment'”。将SupportMapFragment与v4片段一起使用,仍然在编辑器中给出强制转换异常。
googleMap = ((SupportMapFragment) getSupportFragmentManager().
            findFragmentById(R.id.map)).getMap();