我在一年前使用Google Maps v1实现了一个Android应用,现在我需要修复一个错误。问题是,当我在硬件设备上从Eclipse运行应用程序时,地图是空白的。在LogCat中我收到错误:
04-26 14:07:30.754: W/System.err(2354): at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115)
我认为这是一个API密钥错误,但在过去两天搜索Stack Overflow,Google和Maps SDK网站时,我找不到解决方案。尽管Stack Overflow已经解决了这个问题,但没有一个解决方案对我有用。希望有经验的人可以帮助我。
我知道不推荐使用Maps v1,我打算升级到v2。但是现在我只需修复此错误,并且根据Google的说法,现有的API密钥应该继续有效。
有一点需要注意的是,我最近将我的开发环境从PC移到了Mac,确保使用相同的debug.keystore
文件。我不确定这是不是红鲱鱼,但也许我需要从旧环境中复制一些设置或文件。
我做过什么:
答案 0 :(得分:0)
可能有其他几个原因。
1。)如果您使用的是java 1.7或更高版本,则必须以不同的方式生成md5 Print,因为它通常会返回sh1键。使用-v开关之类的。
C:\Program Files\Java\jdk1.7.0\bin>keytool -v -list -alias
androiddebugkey -keystore debug.keystore -storepass android -keypass android
2。)Android清单文件中需要Internet权限。
<uses-permission
android:name="android.permission.INTERNET">
</uses-permission>
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION">
</uses-permission>
3.。)在清单文件中使用以下权限。
<!-- import the library com.google.android.maps!!! -->
<uses-library android:name="com.google.android.maps" />
答案 1 :(得分:0)
我想我终于明白了。调试证书的默认到期时间是365天,我的2012年9月9日到期。这意味着我必须升级到谷歌地图v2来修复这个错误,我绝对吐痰,因为这意味着我不能再支持Android 1.6但将被迫使用最低版本2.2。这将减少8%由于碎片而无法升级的用户,并浪费了2个令人沮丧的时间。
为什么谷歌在他们自己的平台(Android)上使用他们的地图变得如此困难?相比之下,为iOS创建Google Maps应用程序非常容易。虽然也许他们试图通过Google Play SDK解决这种碎片问题,可以独立于Android版本下载?无论如何,我即将发现,因为我的手被迫。
哎呀!