即使使用正确的密钥,MapView也不会加载磁贴

时间:2012-07-09 12:07:19

标签: android android-mapview

所以我通过在终端中使用此命令从我的调试存储中获取MD5证书指纹来生成我的API密钥...

keytool -list -alias androiddebugkey -keystore <my_debug.keystore_location> -storepass android -keypass android

这是生成好的,然后我上网进入文本框,点击生成并获取我的api密钥,然后我进入我的xml布局,如此..

<com.google.android.maps.MapView
    android:id="@+id/map_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:state_enabled="true"
    android:clickable="true"
android:apiKey="my_api_key/>

然后在我的AndroidManifest.xml中,我在Application标签之前添加了Internet权限,并在applicate标签中添加了库引用。

<uses-permission android:name="android.permissions.INTERNET"/>

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:hardwareAccelerated="true" >

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

    <activity
        android:name=".MainActivity"
        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>

我的AVD是正确的api目标以及我的项目。 MapView正在显示,但仅显示灰色图块。当我使用浏览器检查时,我在模拟器中也有互联网。

非常感谢任何帮助。

修改

好好看看我的LogCat

  

无法获取连接工厂客户端

所以我猜这就是问题所在? 在LogCat出现之前,它还说

  

处理网络更改通知:已连接

1 个答案:

答案 0 :(得分:0)

最后我发现了问题。我应该发现另一个非常简单的解决方案。如果您查看下面的代码来自我原来的问题,您可能会发现错误。

<uses-permission android:name="android.permissions.INTERNET"/>

知道了吗? android.permissions.INTERNET应为android.permission.INTERNET。那是对的......奇异的。

在此之后,它仍然无效。但是在从我的.android文件夹中删除我的debug.keystore和debug.keyset然后重新启动eclipse并重新安装它们之后,我又获得了一个新的API密钥并且嘿,它工作正常。

我希望这有助于其他人,并且可以避免这些愚蠢的错误。

我还写了一篇关于如何让Google Maps API正常运行的walkthrough来帮助您解决问题。