0

一年前我使用 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 密钥错误,但过去 2 天搜索 Stack Overflow、Google 和 Maps SDK 网站,我找不到解决方案。虽然这个问题已经在 Stack Overflow 上得到解决,但没有一个解决方案对我有用。希望有经验的人能帮帮我。

我知道地图 v1 已弃用,我打算升级到 v2。但现在我只需要修复这个错误,根据谷歌的说法,现有的 API 密钥应该可以继续工作。

需要注意的一点是,我最近将我的开发环境从我的 PC 转移到了 Mac,确保使用相同的debug.keystore文件。我不确定这是否是一个红鲱鱼,但也许我需要从旧环境中复制一些设置或文件。

我尝试过的:

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

2 回答 2

0

我想我终于想通了。调试证书的默认有效期是 365 天,而我的有效期是 2012 年 9 月 9 日。这意味着我必须升级到谷歌地图 v2 来修复这个错误,我绝对是在吐槽,因为这意味着我不能再支持 Android 1.6但将被迫最低版本为 2.2。这将减少我 8% 的因碎片化而无法升级的用户,并浪费了我令人沮丧的 2 天时间。

为什么谷歌很难在他们自己的平台(Android)上使用他们的地图?相比之下,为 iOS 创建 Google 地图应用程序非常容易。尽管他们可能正在尝试使用可以独立于 Android 版本下载的 Google Play SDK 来解决这种碎片化问题?无论如何,我即将发现,因为我的手被强迫了。

呸!

于 2013-04-26T13:36:07.813 回答
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" />
于 2013-04-26T12:40:29.570 回答