0

I am developing a MonoDroid project and can't seem to get past this issue. I am trying to use the MapsAndLocationDemo_v2 project and can't even get the maps to load on the SimpleMapDemo project. I have gone through many SO posts concerning this issue.

The map loads but is white and Application Output states:

[Google Maps Android API] Failed to contact Google servers. Another attempt will be made when connectivity is established.
[Google Maps Android API] Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).

I built the Google Play Client Services Library by following the instructions in the project README.md.

I generated a new Android Google Maps v2 API Key using the debug.keystore located at:

C:\Users\[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore

and replaced the one in the project manifest.xml as follows:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="5" android:versionName="4.0" package="com.xamarin.docs.android.mapsandlocationdemo2">
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="17" />
<!-- 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 ndroid: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" />
<!-- 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" />
<!-- Notice here that we have the package name of our application as a prefix on the permissions. -->
<uses-permission android:name="com.xamarin.docs.android.mapsandlocationdemo2.permission.MAPS_RECEIVE" />
<permission android:name="com.xamarin.docs.android.mapsandlocationdemo2.permission.MAPS_RECEIVE" android:protectionLevel="signature" />
<application android:label="@string/app_name">
    <!-- Put your Google Maps V2 API Key here. This key will not work for you.-->
    <!-- See https://developers.google.com/maps/documentation/android/start#obtaining_an_api_key -->
    <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="xxxxxxxxxxxxxMY_KEY_HERExxxxxxxxxxxxxxx" />
</application>
</manifest>

enter image description here

My Android device is running 4.0.3. Google Play Services is installed and up to date on my device.

Any suggestions would be welcome...

4

2 回答 2

2

确保您确实使用用于获取 API 密钥的相同密钥签署了您的应用程序。

并且应用程序包与 API 密钥请求中的相同。

我已经浪费了几个小时来发现应用程序签名有问题。

我已经手动签名并出现了地图。

于 2013-08-29T10:40:52.060 回答
0

看看如何检查您的应用程序是否使用有效密钥签名 - 否则 Google 地图将无法正常工作,身份验证将被拒绝或其他此类问题。

还要检查 logcat,它可能会打印出这个问题的原因。

于 2014-01-18T18:27:22.950 回答