2016-12-11 111 views
0

我一直在下面:Xamarin谷歌地图空白

https://developer.xamarin.com/guides/android/platform_features/maps_and_location/maps/obtaining_a_google_maps_api_key/

要想在Android应用使用谷歌地图

https://developer.xamarin.com/guides/android/platform_features/maps_and_location/maps/obtaining_a_google_maps_api_key/

。我无法将地图显示在我的应用程序中。它总是显示一个空白页面。我也没有看到任何错误。

我:

  1. 添加到我的Android清单
  2. 必要的权限启用的API页面在线的API。
  3. 基于使用本地调试密钥库添加凭证
  4. 在我的主要活动页面上添加了地图作为mapfragment。

一切在线指向调试键是不正确的,但我必须尝试一切,我可以用这一个,它仍然无法正常工作。难道它会以某种方式挑选另一个?

此外,我不确定其意义,但是当我尝试访问它时,mapfragment在简历中始终为空。

密钥库的命令:

keytool -list -v -keystore "C:\Users\<My User folder>\AppData\Local\Xamarin\Mono for Android\debug.keystore" -alias androiddebugkey -storepass android -keypass android 

权限清单中(随着AppName的和关键的是隐藏的):

<!-- Google Maps for Android v2 requires OpenGL ES v2 --> 
    <uses-feature android:glEsVersion="0x00020000" android:required="true" /> 
    <!-- We need to be able to download map tiles and access Google Play Services--> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <!-- Allow the application to access Google web-based services. --> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
    <!-- Google Maps for Android v2 will cache map tiles on external storage --> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <!-- Google Maps for Android v2 needs this permission so that it may check the connection state as it must download data --> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <!-- Permission to receive remote notifications from Google Play Services --> 
    <!-- Notice here that we have the package name of our application as a prefix on the permissions. --> 
    <permission android:name="APPNAME.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> 
    <uses-permission android:name="APPNAME.permission.MAPS_RECEIVE" /> 
    <!-- These are optional, but recommended. They will allow Maps to use the My Location provider. --> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <application android:label="<app name>"> 
     <!-- Put your Google Maps V2 API Key here. --> 
     <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="MYKEY" /> 
     <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 
    </application> 

主要活动内容:

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

回答

4

才能使用谷歌地图在Android应用程序。我无法将地图显示在我的应用程序中。它总是显示一个空白页面。我也没有看到任何错误。

这可能造成以下几个原因:

  1. 检查这里的参考How can I create a keystore? 一旦应用程序已签名,则该地图将无法正常工作。

  2. 当您使用其他计算机构建应用程序时,请从新计算机上获取SHA-1。

  3. 请勿使用Java生成的密钥库。请使用由Visual Studio生成的密钥库。它在C:\Users\username\AppData\Local\Xamarin\Mono for Android/

  4. 使用包含Google API的模拟器。

  5. 不要忘记在Google Console中启用Google API。

而这个Xamarin Android Google Map demo应该对你有帮助。我已经用我自己的密钥库和API_KEY尝试了这个演示,并且它可以工作。

+0

谢谢,它的演示为我解决了它 – gmn