首页 > 解决方案 > MapFragment 未显示地图

问题描述

我正在尝试将 MapFragment 的地图分配给谷歌地图,如下所示。

  SetContentView(Resource.Layout.Maps);
  MapFragment mapFragment =(MapFragment)FragmentManager.FindFragmentById(Resource.Id.map);
  mapFragment.GetMapAsync(this);
  GoogleMap googleMap = mapFragment.Map;// here Map is not available

这是我的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
 android:orientation="vertical">
  <Spinner
    android:id="@+id/spinner"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:entries="@array/maptype_arrays">    
  </Spinner>
  <fragment
      android:orientation="vertical"
      android.id="@+id/map"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      class="com.google.android.gms.maps.MapFragment" />
</LinearLayout>

我可以在评论时在我的设备中看到地图GoogleMap googleMap = mapFragment.Map,是否需要添加任何其他内容来获取片段的地图。

显现:

   <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" package="com.company.Mapsdemo" android:installLocation="preferExternal" android:versionName="1.0.0">
    <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="27" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
  <uses-permission android:name="Mapsdemo.Mapsdemo.permission.MAPS_RECEIVE" android:protectionLevel="signature" />
  <user-features android:glEsVersion="0x00020000" android:required="true"/>
  <application android:allowBackup="true" 
               android:largeHeap="true" 
               android:icon="@drawable/MapsDemoAppIcon" 
               android:label="@string/app_name" 
               android:roundIcon="@mipmap/ic_launcher_round" 
               android:supportsRtl="true" 
               android:theme="@style/AppTheme">
    <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/GoogleKey"/>
    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>

  </application>
</manifest>

标签: visual-studiogoogle-mapsxamarin.android

解决方案


请检查是否有 google_maps_api.xml。会有两个。一个用于调试,一个用于发布。如果您从 Android Studio 进行部署,那么调试密钥是必不可少的。

附上图片


推荐阅读