在网上发现很多朋友在使用Google Map的时候,经常会遇到类似问题:Google Map上只显示网格,根本不显示地图。产生这个问题的主要原因有一下几点:
1 没有添加访问权限
- <uses-library android:name="com.google.android.maps" />
- <uses-permission android:name="android.permission.INTERNET"/>
2 使用到mapView的Activity必须继承自MapActivity
3 Google Map API Key生成的方法不对
这里把Google Map API Key的生成过程再讲解一遍。
3.1 查看debug keystore位置
在开发Android程序时,一般是在debug调试模式下开发的,这时SDK的build tools会自动使用debug模式下的证书对应用进行签名的,为了产生debug模式下证书的MD5密纹,我们必须找到debug模式下的keystore密钥库,在不同的操作系统中,keystore的位置是不同的。一个最有效的方法是使用Eclipse查看。打开Eclipse—>Windows—>Preferences—>Android—>Build,查看默认的debug keystore位置。在我的电脑上,这个位置是E:\user\.android\avd\.android\debug.keystore。(PS:比较诡异的位置……)
3.2 使用Java下的keytool工具,产生MD5密纹
在cmd中执行keytool -list -alias androiddebugkey -keystore “你的debug keystore位置” -storepass android -keypass android
由于keytool不在环境变量路径下,所以需要你切换到jdk的bin目录后,再运行上述命令。如果不出意外,就会获得类似结果:
androiddebugkey, 2011-6-2, PrivateKeyEntry,
认证指纹 (MD5): XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
3.3 申请Google Map API Key
访问http://code.google.com/intl/zh-CN/android/maps-api-signup.html,会看到如下页面:
勾上“I have read and agree with the terms and conditions”,填入你的认证指纹(MD5)。输入后,点Generate API Key,之后会为我们产生Google Map API了。不过这里需要你有一个Google帐号,没有的话,自己申请一个吧。如下图,这个API是我们在程序中可以使用的。
好了,到这里的申请工作就告一段落了。至于如何使用,请参见我的下一篇博文,谢谢!