谷歌地图V2在安卓上随机加载地图。

5
我已经在我的应用中实现了Google Map V2,一切都运行正常。我在2-3个手机和平板电脑上测试它,它完美地运行。但是在同一设备上每天运行10到15次后,它就无法加载地图并显示以下错误信息: 05-06 07:17:41.866: E/Google Maps Android API(17217): Failed to load map. Could not contact Google servers. 简而言之,它有时会显示地图,有时则不会。我正在使用由Android调试密钥生成的地图密钥。 请提供一些解决方案。 我的清单文件:
    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ocatalog.mapdemo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <permission
        android:name="com.ocatalog.mapdemo.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.ocatalog.mapdemo.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyA9E-oCIM2d5rlhxnsJf66Bly57JXpkiKI" />

        <activity
            android:name="com.ocatalog.mapdemo.MapDemoActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

这看起来非常奇怪,你有任何线索为什么它停止工作了吗?你能发布你的AndroidManifest.xml和包含GoogleMap代码的文件吗? - chopchop
我在连续加载地图时遇到了相同的问题,似乎对从Debug.Keystore生成的密钥进行了一些限制,但不确定。 - Anuj
没有线索..但上面是我的Manifest.xml文件。 - Niket K
2个回答

1
我遇到了同样的问题,地图在多个设备上运行正常,但会随机显示空白屏幕,有时持续数天。
当我调试代码时,可以看到所有操作,如添加标记、覆盖物等都被正确执行。此外,我不知道是否相关,但是 Geocoder 在此期间似乎也工作正常,因此它绝对与 Google 服务连接问题无关(或者是吗?)。
此外,地图也可以离线正常工作,并且缓存数据被正确存储(大多数情况下是这样)。
清除我的应用程序缓存和数据也没有帮助。Google 服务应用程序也是如此。然而,重新安装应用程序似乎可以解决问题,但不能防止其再次发生。

嘿...经过一些实验,我发现问题是由于服务器连接问题造成的,否则我的代码都没问题。 - Niket K
你使用的API版本是什么?自2014年末以来,我就没有遇到过这个问题了... - Vladislav

0
请在您的清单文件中添加以下permission
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>

Google Maps API v2Google Maps Android API v2

你应该使用 Google Maps Android API v2


谢谢您的回复,但我已经添加了该权限。我的地图在所有手机上都可以完美运行,但是在多次运行相同代码后,会出现上述错误。 - Niket K
Google地图V2 API。我已从散列密钥(my keytool -list -alias androiddebugkey -keystore "home\niket.android\debug.keystore" -storepass android -keypass android)创建了地图密钥。 - Niket K
我正在使用Google Maps Android API v2。 - Niket K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接