我目前有一个谷歌地图活动显然运作良好,但没有显示地图(这听起来很愚蠢!)
这张图片可以让您更好地理解我的问题:
我已经确认了我的apiKey,一遍又一遍地检查了教程,甚至清单似乎都没有遗漏任何内容。
我在adb上只得到这个:
276 MapActivity W回收调度员 com.google.googlenav.datarequest.DataRequestDispatcher@43ea39b0
276 MapActivity V回收地图对象。
51 GpsLocationProvider D setMinTime 1000
276 MapActivity I处理网络变更通知:已连接
276 MapActivity E无法获得连接工厂客户端
有没有人知道可能导致这种情况的原因?
感谢。
答案 0 :(得分:2)
您是否正在运行使用密钥存储区中的密钥签名的应用程序,或者调试密钥(在eclipse中单击运行将使用调试密钥对apk进行签名并将其安装在设备上 - 无论是模拟器还是物理设备)。
如果你有一个地图密钥(apikey),密钥库将有两个不同的哈希码,具体取决于你使用的是调试密钥还是你的密钥 - 所以你需要两个不同的地图密钥,具体取决于你运行应用程序的方式(只有在开发应用程序时才需要调试)。
查看调试部分:http://code.google.com/android/add-ons/google-apis/mapkey.html#getdebugfingerprint
答案 1 :(得分:2)
如果您使用的是setSatellite(boolean)
和setStreetView(boolean)
,那么您可能会遇到这种情况。这是地图视图中的BUG。只使用这两种方法中的一种,或者您可以尝试这两种方法的某些组合。有时候,只使用其中一个解决问题,你需要使用两者的组合...就像我在特定情况下所做的那样..
streetView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
mapView.invalidate();
mapView.setSatellite(false);
//mapView.setStreetView(true);
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("satelliteView", false);
}
});
satelliteView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
mapView.invalidate();
mapView.setStreetView(false);
mapView.setSatellite(true);
}
});
答案 2 :(得分:0)
您确定正在为MapActivity / View正确设置API密钥吗?你可以发布你的布局xml和源代码吗?
请务必按照本教程中的步骤进行操作:http://code.google.com/android/add-ons/google-apis/maps-overview.html
答案 3 :(得分:0)
它还会显示一个类似的地图,如果你发送一个假的纬度/经度对,那里没有有用的地图数据,例如。 “geo fix 0.0 0.0”(北极)
尝试使用Google地图数据的“geo fix -0.1 51.5”(伦敦南部)。
答案 4 :(得分:0)
问题在于坐标错误,地图变得如此放大,以至于无法显示任何内容。
我缩小了,我有地图;所以这是一个坐标问题而不是键/地图活动问题。
对于那些无法在这些情况下缩小的人,请将其添加到您的代码中
mapView.setBuiltInZoomControls(true);
并在布局中
android:clickable="true"