Android上的空白MapView

时间:2013-04-26 12:18:13

标签: android android-mapview

我在一年前使用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文件。我不确定这是不是红鲱鱼,但也许我需要从旧环境中复制一些设置或文件。

我做过什么:

  1. 检查debug.keystore文件与旧计算机上的文件相同。
  2. 尝试在Google API控制台上检查我的API密钥是否正确,但它不再出现(可能是因为它已被弃用)。
  3. 已为Maps v2注册新的API密钥,并尝试使用它。

2 个答案:

答案 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版本下载?无论如何,我即将发现,因为我的手被迫。

哎呀!