Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法转换类型';Android.Support.V4.App.Fragment';至';Android.Gms.Maps.MapFragment';_Android_Google Maps_Android Fragments_Android Viewpager_Xamarin - Fatal编程技术网

无法转换类型';Android.Support.V4.App.Fragment';至';Android.Gms.Maps.MapFragment';

无法转换类型';Android.Support.V4.App.Fragment';至';Android.Gms.Maps.MapFragment';,android,google-maps,android-fragments,android-viewpager,xamarin,Android,Google Maps,Android Fragments,Android Viewpager,Xamarin,我正在使用Xamarin,并且正在重新编写一个Google地图应用程序,以使用Android.Support.V4.App.Fragments和一个视图寻呼机 这是我的密码: private void InitMapFragment() { _mapFragment = FragmentManager.FindFragmentByTag("map") as MapFragment; if (_mapFragment == null) { GoogleMap

我正在使用Xamarin,并且正在重新编写一个Google地图应用程序,以使用Android.Support.V4.App.Fragments和一个视图寻呼机

这是我的密码:

private void InitMapFragment()
{
    _mapFragment = FragmentManager.FindFragmentByTag("map") as MapFragment;
    if (_mapFragment == null)
    {
        GoogleMapOptions mapOptions = new GoogleMapOptions()
            .InvokeMapType(GoogleMap.MapTypeNormal)
            .InvokeZoomControlsEnabled(true)
            .InvokeCompassEnabled(true);

        FragmentTransaction fragTx = FragmentManager.BeginTransaction();
        _mapFragment = MapFragment.NewInstance(mapOptions);
        fragTx.Add(Resource.Id.mapWithOverlay, _mapFragment, "map");
        fragTx.Commit();
    }
}
由于我现在扩展活动以使用Android.Support.V4.App.Fragment,因此在编译时出现以下错误:

错误CS0039:无法将类型“Android.Support.V4.App.Fragment”转换为 “Android.Gms.Maps.MapFragment”通过引用转换、装箱 转换、取消装箱转换、换行转换或空类型 转换(CS0039)

在生产线上:

_mapFragment = FragmentManager.FindFragmentByTag("map") as MapFragment
FragmentTransaction fragTx = FragmentManager.BeginTransaction()
以及:

错误CS0029:无法隐式转换类型 “Android.Support.V4.App.FragmentTransaction”到 “Android.App.FragmentTransaction”(CS0029)

在生产线上:

_mapFragment = FragmentManager.FindFragmentByTag("map") as MapFragment
FragmentTransaction fragTx = FragmentManager.BeginTransaction()
我能得到一些帮助让这个代码工作吗


提前感谢

您将使用支持库片段的类与不基于该层次结构构建的类混合在一起(仅适用于3.0+)。你不能那样做。您需要使用SupportMapFragment而不是MapFragment

因为您正在使用Android.Support.V4.App.Fragments,而不是在

_mapFragment = MapFragment.NewInstance(mapOptions);
使用SupportMapFragment

_mapFragment = SupportMapFragment.NewInstance(mapOptions);
希望有帮助


您的libs文件夹和项目构建路径中应该有android.support.v4.jar

使用SupportMapFragment需要什么引用?使用SupportMapFragment而不是MapFragment需要做什么?