我的第一个地图程序是android sdk 1.0的时候写的,那个时候刚刚apikey才出来,当时申请了,在模拟器上和手机上都能出来地图资源,结果等我换到android sdk 1.5了,在手机上可以跑起来,在模拟器上不行,于是这个问题一直困饶着我,我在网上查过一些资料,一个最值得信任的答案是说模拟器上把地图资源关掉了,所以我一直都认为是这样的,当时由于本公司只有我一个做地图相关的开发,后来在和其它公司的开发人员交流的时候发现在模拟器上可以显示地图资源,我就很郁闷了,不知道是什么原因,因为我的程序以及配置一直都没什么问题,怎么地图会出不来呢,找了好久,我怀疑是不是我的apikey过期了,结果我重新申请了一个,果然地图出来了,最后仔细想想,确实当每个版本更新是应该重新申请一个apikey,写在这里供大家参考,以便不要再范同样的错误了。
**************************************************************************
以下详细写一下如何申请apikey:
1、找到debug.keystore:
打开Eclipse--->Windows--->Preferences--->Android--->Build
查看默认的debug keystore位置,我的是C:/Documents and Settings/Administrator/.android/debug.keystore
2、运行cmd,并输入命令:keytool -list -alias androiddebugkey -keystore "C:/Documents and Settings/Administrator/.android/debug.keystore" -storepass android -keypass android
结果会输出一个:androiddebugkey, 2010-4-20, PrivateKeyEntry,
认证指纹 (MD5): DA:29:11:13:D2:D2:0F:87:8E:08:22:6C:0D:4D:51:30
3、打开http://code.google.com/intl/zh-CN/android/maps-api-signup.html
输入上面获得的MD5,按着顺序进入自己的邮箱,获得
<com.google.android.maps.MapView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="*******************************"
/>
这个apiKey就是你要得到的。
4、在自己的应用程序的设置mapview的xml文件中配置一下:
<com.google.android.maps.MapView android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="*********************************************"
android:clickable="true"
android:focusable="true"
android:nextFocusDown = "@+id/map"
android:nextFocusLeft = "@+id/map"
android:nextFocusRight = "@+id/map"
android:nextFocusUp = "@+id/map"
/>
一切ok,这样地图就出来了。