谷歌地图在安卓设备上只显示空白瓷砖

5

我在我的应用程序中实现了Google地图,但它只显示空白网格。我已经在AndroidManifest.xml文件中进行了更改,并在地图活动的布局文件中包含了API密钥。

6个回答

6
这可能听起来有些傻,但我一直遇到这个问题,直到意识到<uses-permission>标签需要作为<manifest>元素的直接子元素,而不是<application>元素。我之前错误地把它们放在了<uses-library>标签后面。所以你的AndroidManifest.xml文件的最终结构应该类似于这样:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <uses-sdk ... />

    <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"/>

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

        <uses-library android:name="com.google.android.maps" />

    </application>
</manifest>

希望这能帮助到犯同样错误的任何人!

3

在API控制台中,我一直遇到相同的问题,直到我意识到我启用了Google Maps API v2而不是Google Maps Android API v2。启用后,一切都正常了。


0
问题在于代码API。使用以下函数来查看Google Maps密钥是否正确:
private String getShaKey() {
        //fucnion para saber si esta bien registrado el codigo de googlemaps
        //ME SALE EXCEPTION DE NOMBRE NO ENCONTRADO?¿?¿
        String strRet="";
         try {
         PackageInfo info = getPackageManager().getPackageInfo("your.package.name",
         PackageManager.GET_SIGNATURES);
         for (Signature signature : info.signatures) {
         MessageDigest md = MessageDigest.getInstance("SHA");
         md.update(signature.toByteArray());
         //Log.v(TAG, "KeyHash:" + Base64.encodeToString(md.digest(),
         strRet="KeyHash:" + Base64.encodeToString(md.digest(),Base64.DEFAULT);

         }

         } catch (NameNotFoundException e) {
            //e.printStackTrace();
         strRet="EXCEPTION NOMBRE NO ENCONTRADO";
             } catch (NoSuchAlgorithmException  e) {
         //e.printStackTrace();
         strRet="EXCEPTION ALGORITMO NO";
         }
        return strRet;

         }

0

我也遇到过这种情况。第一次成功启动谷歌地图时,它运行良好;第二天,整个地图(默认视图)只渲染了一半,而另一半则仅填充了瓷砖,在更改地图中的某些属性后,它全部变成了瓷砖

现在,我所做的就是更新我的 API 密钥,然后一切都恢复正常了。


0

这个问题发生在我启动地图时作为意图(Intent intent = new Intent(android.content.Intent.ACTION_VIEW, mapUrl) ...)。地图被创建为空,没有加载任何内容。地图在右上角显示我的图标为"已登录用户",但没有任何错误信息。在模拟器上一切运行正常。最后,我检查了正常的谷歌地图应用程序,它也是空的。

解决方法:从开发设备的设置应用中移除我的谷歌帐户。我花了几个小时才弄清楚这个问题。不知道那是什么,但也许能帮助别人省些时间。


-1

我曾经遇到过同样的问题。我在Manifest.xml文件中添加了这一行代码,现在一切都正常工作:

<uses-library android:name="com.google.android.maps" />

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